Inicjowanie bibliotek DLL innych niż MFC
Aby zainicjować biblioteki DLL non - MFC, kodu źródłowego DLL musi zawierać funkcję o nazwie DllMain.Poniższy kod przedstawia podstawowy szkielet wyświetlono co definicji DllMain może mieć następującą postać:
BOOL APIENTRY DllMain(HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
switch( ul_reason_for_call ) {
case DLL_PROCESS_ATTACH:
...
case DLL_THREAD_ATTACH:
...
case DLL_THREAD_DETACH:
...
case DLL_PROCESS_DETACH:
...
}
return TRUE;
}
[!UWAGA]
Windows SDK Dokumentacji DllEntryPoint mówi, że rzeczywista nazwa funkcji punktu wejścia musi być określona na linker wiersza polecenia z opcją /ENTRY.W programie Visual C++, nie trzeba użyć opcji /ENTRY, jeśli nazwa funkcji punktu wejścia jest DllMain.W rzeczywistości, jeśli używasz opcji /ENTRY i nazwa punktu wejścia działać coś innego niż DllMain, biblioteki wykonawczej C nie będzie uzyskać poprawnie zainicjowany.
O czym chcesz się dowiedzieć więcej?
Funkcja punktu wejścia dynamicznie dołączanej biblioteki (SDK systemu Windows)
Zachowanie biblioteki uruchomieniowej C i _DllMainCRTStartup