Writing /home/grochu/public_html/wiki/data/cache/f/f2bd9ec0198e0b35d16e9d0534ad3c78.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Biblioteki DLL
Zadanie 1
- Utwórz bibliotekę DLL:
- wyeksportuj z niej funkcję
Komunikat, która wyświetla okno MessageBox z zadanym w argumencie komunikatem, - wyeksportuj klasę o nazwie
MojaKlasazawierającą metodę publicznąKomunikatdziałającą identycznie jak powyższa funkcja. - korzystając z narzędzia DumpBin.exe zobacz listę eksportowanych (oraz importowanych) funkcji z utworzonego pliku
.dlloraz.lib. - do eksportowania wykorzystaj modyfikator:
extern "C" __declspec(export)
- Utwórz w ramch tego samego rozwiązania nowy projekt i zlinkuj bibliotekę statycznie (niejawnie). Przetestuj działanie dostępnych w bibliotece funkcji i klas.
- dodaj do biblioteki DLL funkcję DllMain. Wyświetl komunikaty (MessageBox) infromujące o tym jaki był powód uruchomienia tej funkcji (np.
DLL_PROCESS_ATTACH) - do importowania funkcji i zmiennych z biblioteki wykorzystaj modyfikator:
extern "C" __declspec(import)
- korzystając z DumpBin.exe zobacz listę eksportowanych (oraz importowanych) funkcji z utworzonego pliku
.exe - utwórz dodatkowy wątek tak aby wywołać w bibliotece dll funjcę DllMain z
DLL_THREAD_ATTACH
- Utwórz w ramch tego samego rozwiązania nowy projekt i zlinkuj bibliotekę dunamicznie (jawnie) w czasie działania programu. Przetestuj działanie dostępnych w bibliotece funkcji i klas.
- korzystając z DumpBin.exe zobacz listę eksportowanych (oraz importowanych) funkcji z utworzonego pliku
.exe - wyświetl pełną ścieżkę i nazwę wczytanej biblioteki,
- przydatne funkcje:
- LoadLibrary wczytuje moduł do pamięci wirtualnej procesu
- GetProcAddress uzyskuje adres importowanej funkcji
- FreeLibrary zwalnia zasoby biblioteki DLL
- Umieść w bibliotece DLL następujące zasoby: dowolny napis, dowolne menu
- wczytaj z biblioteki zapisane zasoby. Wczytany tekst wyświetl a menu załaduj jako menu kontekstowe (aktywowane prawym klawiszem myszy w oknie)
- przydatne funkcje: