Freigeben über


Initialisieren einer DLL

In der Regel verfügt die DLL über Initialisierungscode (wie dem zur Speicherbelegung), der beim Laden der DLL ausgeführt werden muss. Bei Verwendung von Visual C++ hängt es von der Art der erstellten DLL ab, an welcher Stelle Sie den Initialisierungscode einfügen. Wenn Sie keinen Initialisierungs- oder Terminierungscode hinzufügen müssen, sind beim Erstellen der DLL keine besonderen Schritte erforderlich. Falls die DLL jedoch initialisiert werden muss, können Sie der folgenden Tabelle entnehmen, wo Code eingefügt werden muss.

DLL-Typ

Wo Initialisierungs- und Terminierungscode eingefügt werden muss

Reguläre DLL

In den Funktionen InitInstance und ExitInstance des CWinApp-Objekts der DLL.

Erweiterungs-DLL

In der vom MFC-DLL-Assistenten generierten DllMain-Funktion.

MFC-fremde DLL

In einer Funktion mit dem Namen DllMain, die von Ihnen bereitgestellt wird.

In Win32 können alle DLLs eine optionale Einstiegspunktfunktion (in der Regel DllMain) enthalten, die sowohl für die Initialisierung als auch für die Terminierung aufgerufen wird. Dadurch haben Sie die Möglichkeit, zusätzliche Ressourcen je nach Bedarf zu reservieren oder freizugeben. Windows ruft die Einstiegspunktfunktion in den folgenden vier Situationen auf: Anfügen an bzw. Trennen von einem Prozess und Anfügen an einen bzw. Trennen von einem Thread.

Die C-Laufzeitbibliothek stellt eine Einstiegspunktfunktion mit dem Namen _DllMainCRTStartup bereit, durch die DllMain aufgerufen wird. Abhängig vom DLL-Typ sollte entweder im Quellcode eine Funktion mit dem Namen DllMain enthalten sein, oder Sie sollten die in der MFC-Bibliothek vorhandene DllMain-Funktion verwenden.

Was möchten Sie tun?

Worüber möchten Sie mehr erfahren?

Siehe auch

Konzepte

DLLs in Visual C++