Freigeben über


LoadLibrary und AfxLoadLibrary

Prozesse rufen LoadLibrary (oder AfxLoadLibrary) auf um zum expliziten Verknüpfen einer DLL.Wenn die Funktion folgt, wird sie die angegebene DLL im Adressbereich des aufrufenden Prozesses zu und gibt ein Handle für die DLL zurück, das mit anderen Funktionen in expliziten verknüpfte – z. B. GetProcAddress und FreeLibrary verwendet werden kann.

LoadLibrary versucht, die DLL mithilfe derselben Suchsequenz isolieren, die für die implizite Verknüpfung verwendet wird.Wenn das System die DLL nicht finden kann oder die Einstiegspunktfunktion FALSE zurückgibt, wird von LoadLibrary zurückgegeben.Wenn der Aufruf LoadLibrary ein DLL-Modul angibt, das bereits im Adressraum des aufrufenden Prozesses zugeordnet ist, gibt die Funktion ein Handle für die DLL zurück und erhöht den Verweiszähler des Moduls.

Wenn die DLL über eine Einstiegspunktfunktion verfügt, ruft das Betriebssystem die Funktion im Kontext des Threads auf, durch den LoadLibrary aufgerufen wurde.Die Einstiegspunktfunktion wird nicht aufgerufen, wenn die DLL bereits an den Prozess aufgrund eines vorherigen Aufrufs zu LoadLibrary angefügt wird, der keinen entsprechenden Aufruf der Funktion FreeLibrary verfügt.

Für MFC-Anwendungen, die Erweiterungs-DLLs laden, wird empfohlen, AfxLoadLibrary statt LoadLibrary zu verwenden.AfxLoadLibrary behandelt die Threadsynchronisierung vor dem Aufruf von LoadLibrary.Die Schnittstelle (Funktionsprototyp) zu AfxLoadLibrary ist mit LoadLibrary identisch.

Wenn die DLL von Windows nicht geladen werden kann, versucht der Prozess, die Verarbeitung fortzusetzen.So könnte der Prozess z. B. dem Benutzer den Fehler melden und ihn veranlassen, einen anderen Pfad für die DLL anzugeben.

SicherheitshinweisSicherheitshinweis

Wenn der Code, unter Windows NT 4, Windows 2000 oder Windows XP ausführen (vor SP1) ist, stellen Sie sicher, den vollständigen Pfad eines beliebigen DLL anzugeben.Unter diesen Betriebssystemen wird beim Laden von Dateien zuerst das aktuelle Verzeichnis durchsucht.Wenn Sie den Pfad der Datei qualifizieren, würde eine Datei, die nicht das beabsichtigte Verwendung ist, geladen werden.

Was möchten Sie tun?

Worüber möchten Sie mehr erfahren?

Siehe auch

Referenz

AfxLoadLibrary

Konzepte

DLLs in Visual C++

Weitere Ressourcen

LoadLibrary