Freigeben über


Initialisieren regulärer DLLs

Da reguläre DLLs über ein CWinApp-Objekt verfügen, sollten sie ihre Initialisierungs- und Terminierungsaufgaben an derselben Stelle ausführen wie eine MFC-Anwendung: in den Memberfunktionen InitInstance und ExitInstance der von CWinApp abgeleiteten Klasse der DLL. MFC umfasst eine DllMain-Funktion, die von _DllMainCRTStartup für PROCESS_ATTACH und PROCESS_DETACH aufgerufen wird. Folglich sollten Sie keine eigene DllMain-Funktion schreiben. Die von MFC bereitgestellte DllMain-Funktion ruft InitInstance beim Laden der DLL und ExitInstance vor dem Entladen der DLL auf.

Eine reguläre DLL kann mehrere Threads verfolgen, indem sie in ihrer InitInstance-Funktion die Funktionen TlsAlloc und TlsGetValue aufruft. Mit diesen Funktionen kann die DLL threadspezifische Daten verfolgen.

Wenn Sie die MFC-Unterstützung für OLE, Datenbanken (bzw. DAO) oder Sockets in einer regulären, dynamisch mit MFC verknüpften DLL verwenden, dann werden die MFC-Debugbuilds der Erweiterungs-DLLs MFCOxxD.dll, MFCDxxD.dll und MFCNxxD.dll automatisch eingebunden (wobei xx für die Versionsnummer steht). Sie müssen eine der folgenden vordefinierten Initialisierungsfunktionen für jede dieser DLLs aufrufen, die Sie in CWinApp::InitInstance der regulären DLL verwenden.

Art der MFC-Unterstützung

Aufzurufende Initialisierungsfunktion

MFC-OLE (MFCOxxD.dll)

AfxOleInitModule

MFC-Datenbank (MFCDxxD.dll)

AfxDbInitModule

MFC-Sockets (MFCNxxD.dll)

AfxNetInitModule

Was möchten Sie tun?

Worüber möchten Sie mehr erfahren?

Siehe auch

Konzepte

Initialisieren einer DLL