/DELAY (Verzögerte Ladeimporteinstellungen)

Linkeroptionen zum Steuern des verzögerten Ladens von DLLs zur Laufzeit.

Syntax

/DELAY:UNLOAD
/DELAY:NOBIND

Hinweise

Die /DELAY Option steuert verzögertes Laden von DLLs:

  • Der /DELAY:UNLOAD-Qualifizierer weist die Hilfsfunktion für das verzögerte Laden an, das explizite Entladen der DLL zu unterstützen. Die Importadresstabelle (IAT) wird in ihre ursprüngliche Form zurückgesetzt, wodurch IAT-Zeiger ungültig und überschrieben werden.

    Wenn Sie die Option nicht auswählen /DELAY:UNLOAD, schlägt ein Aufruf __FUnloadDelayLoadedDLL fehl.

  • Der /DELAY:NOBIND Qualifizierer weist dem Linker an, keine bindungsfähige IAT in das endgültige Bild einzuschließen. Das Standardverhalten ist, die bindungsfähige IAT für verzögert geladene DLLs zu erstellen. Das resultierende Bild kann nicht statisch gebunden werden. (Bilder mit gebundenen IATs können vor der Ausführung statisch gebunden werden.) Weitere Informationen finden Sie unter /BIND.

    Wenn die DLL gebunden ist, versucht die Hilfsfunktion, die gebundenen Informationen zu verwenden, anstatt jedes der referenzierten Importe aufzurufen GetProcAddress . Wenn entweder der Zeitstempel oder die bevorzugte Adresse nicht mit den Adressen in der geladenen DLL übereinstimmt, geht die Hilfsfunktion davon aus, dass die gebundene IAT nicht mehr aktuell ist. Es wird fortgesetzt, als ob das GEBUNDENE IAT nicht vorhanden ist.

    /DELAY:NOBIND bewirkt, dass das Programmimage größer ist, aber die Ladezeit der DLL beschleunigen kann. Wenn Sie niemals beabsichtigen, die DLL zu binden, wird verhindert, /DELAY:NOBIND dass das GEBUNDENE IAT generiert wird.

Verwenden Sie die Option, um DLLs zum Verzögern des /DELAYLOAD Ladevorgangs anzugeben.

So legen Sie diese Linkeroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten für das Projekt. Weitere Informationen finden Sie unter Festlegen von Compiler- und Buildeigenschaften.

  2. Wählen Sie die Seite "Konfigurationseigenschaften linker>>Advanced".

  3. Ändern Sie die geladene DLL-Eigenschaft "Unload delay" oder die unbind delay loaded DLL-Eigenschaft . Wählen Sie OK oder Übernehmen, um die Änderungen zu speichern.

So legen Sie diese Linkeroption programmgesteuert fest

Siehe auch

MSVC-Linkerreferenz
Linkeroptionen