Inicjowanie biblioteki DLL
Typowo, Twój DLL ma kod inicjalizacji (tak jak pamięć alokacji), który musi być wykonany kiedy DLL się ładuje.Używając Visual C++, miejsce dodania kodu służącego inicjalizacji DLL, zależy od typu kompilowanego DLL.Jeśli nie trzeba dodawać kodu inicjowania lub zakończenia, nic specjalnego nie należy zrobić podczas kompilowania biblioteki DLL.Jeśli musisz zainicjować bibliotekę DLL, w poniższej tabeli opisano gdzie dodać kod.
Typ biblioteki DLL |
Gdzie dodać inicjalizację i kod zakończenia |
---|---|
Regularna biblioteka DLL |
W bibliotekach DLL CWinApp obiektu InitInstance i ExitInstance. |
Rozszerzenia biblioteki DLL |
W funkcji DllMain wygenerowanej przez kreatora MFC DLL. |
Nie-MFC DLL |
W funkcji o podanej nazwie DllMain. |
W systemie Win32, wszystkie biblioteki DLL mogą zawierać opcjonalną funkcję punktu wejścia (zwykle zwaną DllMain), która jest wywoływana z inicjowania i zakończenia.Daje to możliwość alokacji lub zwolnienia dodatkowych zasobów, według potrzeb.Windows wywołuje funkcję punktu wejścia w czterech sytuacjach: załączanie procesu, odłączanie procesu, załączanie wątku i odłączanie wątku.
Biblioteka uruchomieniowa C oferuje funkcję punktu wejścia o nazwie _DllMainCRTStartup i wywołuje DllMain.W zależności od typu biblioteki DLL, powinieneś mieć funkcję o nazwie DllMain źródła kodu lub należy użyć DllMain w bibliotece MFC.
Co chcesz zrobić?
O czym chcesz się dowiedzieć więcej?
Zachowanie biblioteki uruchomieniowej C i _DllMainCRTStartup
Funkcja punktu wejścia dynamicznie dołączanej biblioteki (SDK systemu Windows)