Linkerunterstützung für verzögertes Laden von DLLs

Verzögertes Laden von DLLs wird nun vom Linker von Visual C++ unterstützt. Daher müssen Sie nicht mehr die Windows SDK-Funktionen LoadLibrary und GetProcAddress verwenden, um das verzögerte Laden von DLLs zu implementieren.

Vor Visual C++ 6.0 konnte eine DLL zur Laufzeit ausschließlich durch Verwenden von LoadLibrary und GetProcAddress geladen werden. Die DLL wurde dann vom Betriebssystem geladen, wenn die ausführbare Datei oder die DLL, von der sie verwendet wurde, geladen wurde.

Beginnend mit Visual C++ 6.0 werden vom Linker beim statischen Verknüpfen mit einer DLL Optionen bereitgestellt, um das Laden der DLL zu verzögern, bis das Programm eine Funktion in dieser DLL aufruft.

Eine DLL kann von einer Anwendung verzögert geladen werden, indem die Linkeroption /DELAYLOAD (Importe verzögert laden) mit einer Hilfsfunktion verwendet wird, deren Standardimplementierung von Visual C++ bereitgestellt wird. Die DLL wird von der Hilfsfunktion zur Laufzeit geladen, indem LoadLibrary und GetProcAddress aufgerufen werden.

Verzögertes Laden einer DLL sollte unter folgenden Umständen in Betracht gezogen werden:

  • Das Programm ruft möglicherweise keine Funktion in der DLL auf.

  • Eine Funktion in der DLL wird möglicherweise erst spät im Programmablauf aufgerufen.

Verzögertes Laden einer DLL kann angegeben werden, wenn entweder ein EXE-Projekt oder ein DLL-Projekt erstellt wird. Von einem DLL-Projekt, das das Laden einer oder mehrerer DLL verzögert, sollte selbst kein verzögert geladener Einstiegspunkt in DLLmain aufgerufen werden.

In den folgenden Themen wird verzögertes Laden von DLLs beschrieben:

Siehe auch

Konzepte

DLLs

Verknüpfung