DLL
Sortowanie z wykorzystaniem funkcji zawartej w DLL'u.
- Działanie programu:
- na początku pracy programu wczytać wskazany DLL i zweryfikować,
czy zawiera niezbędne składniki
- jeśli nie został podany żaden parametr wywołania programu,
przyjąć domyślną nazwę DLL'a wykorzystywaną przez program
- jeśli program został uruchomiony z parametrem (można go odczytać
w funkcji WinMain() lub przy pomocy funkcji GetCommandLine())
nazwę DLL'a przyjąć równą parametrowi
- opcje w menu programu:
- 'Losuj':
- wywołać modalny dialog, w którym użytkownik poda rozmiar
tablicy do sortowania oraz co ile procent wywoływać fukcję
pokazującą zaawansowanie sortowania
- utworzyć dynamicznie tablicę liczb typu int
o wskazanym rozmiarze
- losowo zainicjować zawartość tablicy liczbami od 0 do
RAND_MAX
- 'Sortuj' - wywołać funkcję sortującą z DLL'a
- 'Przerwij' - przerwanie sortowania
- jeśli tablica została utworzona, jej zawartość powinna być pokazana
w obszarze roboczym okna (element tablicy pokazać jako pionową czarną
linię od 0 do wartości tego elementu przeskalowaną do wielkości
okna); pokazywać elementy przechodząc ze stałym krokiem przez całą
tablicę (np. w oknie o szerokości 100 pikseli pokazywać co 10 element
tablicy zawierającej 1000 elementów)
- dla dużej posortowanej tablicy zawartość okna będzie dwukolorowa,
z podziałem wzdłuż przekątnej okna
- Zawartość DLL'a:
- void sort( int array[],
int size, int procStep, BOOL (CALLBACK *stepFunction)(int));
funkcja sortująca tablicę liczb,
gdzie:
- array
tablica liczb do posortowania
- size
rozmiar tablicy do posortowania
- procStep
co ile procent zaawansowania sortowania wywoływać stepFunction
- stepFunction
funkcja wywoływana po osiągnięciu wielokrotności wskazanego
procentu zaawansowania z wartością argumentu równą aktualnemu
procentowemu zaawansowaniu oraz po zakończeniu sortowania w
wartością argumentu równą 101
np. dla wartości 15 zostanie wywołana kolejno z następującymi
parametrami: 15, 30, 45, 60, 75, 90, 101
- ciąg znaków w zasobach o numerze 1, zawierający tekst, który powinien
zostać przypisany tytułowi okna po zakończeniu sortowania
- ikona o numerze 1 w zasobach, która powinna być ikoną głównego okna
programu
- Funkcja stepFunction:
- podawana jako parametr funkcji sortowania
- wywoływana z parametrem określającym procentowe zaawansowanie
sortowania lub wartością 101 oznaczającą zakończenie sortowania
- powinna wyświetlić aktualne zaawansowanie w tytule okna, jeśli
sortowanie zostało zakończone powinna wyświetlić tekst o numerze
1 z zasobów biblioteki DLL
- wartość zwracana: TRUE jeśli sortowanie ma być kontynuowane, FALSE
w przeciwnym przypadku
- powinna obsługiwać komunikaty dochodzące do okna, tak aby aplikacja
reagowała na działania użytkownika (w tym także przerwanie sortowania),
UWAGA: proszę zostawić to na koniec