Initialisieren MFC-fremder DLLs
Um MFC-fremde DLLs zu initialisieren, muss der DLL-Quellcode eine Funktion mit dem Namen DllMain enthalten. Der folgende Code stellt ein grundlegendes Gerüst dar, das veranschaulicht, wie die Definition von DllMain aussehen könnte:
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;
}
Tipp
Laut Windows SDK-Dokumentation für DllEntryPoint muss der tatsächliche Name der Einstiegspunktfunktion mit der /ENTRY-Option in der Linkerbefehlszeile angegeben werden. In Visual C++ brauchen Sie die /ENTRY-Option jedoch nicht zu verwenden, wenn der Name der Einstiegspunktfunktion DllMain lautet. Vielmehr wird die C-Laufzeitbibliothek nicht ordnungsgemäß initialisiert, wenn Sie die /ENTRY-Option verwenden und die Einstiegspunktfunktion nicht den Namen Dllmain aufweist.