Freigeben über


Die Hilfsfunktion

Aktualisiert: November 2007

Die Hilfsfunktion für linkergestütztes verzögertes Laden stellt die Funktion dar, von der die DLL zur Laufzeit geladen wird. Das Verhalten der Hilfsfunktion kann angepasst werden, indem eine eigene Funktion geschrieben und mit dem Programm verknüpft wird, anstatt die gelieferte Hilfsfunktion in Delayimp.lib zu verwenden. Eine einzige Hilfsfunktion ist für alle verzögert geladenen DLLs verantwortlich.

Eine eigene Version der Hilfsfunktion kann bereitgestellt werden, um bestimmte Verarbeitungsschritte, die vom Namen der DLL oder Importe abhängen, durchzuführen.

Von der Hilfsfunktion werden die folgenden Aktionen durchgeführt:

  • Das gespeicherte Handle auf die Bibliothek wird überprüft, um festzustellen, ob diese bereits geladen wurde.

  • LoadLibrary wird aufgerufen, um die DLL zu laden.

  • GetProcAddress wird aufgerufen, um die Prozeduradresse abzurufen.

  • Es erfolgt eine Rückkehr zum verzögert geladenen Import-Thunk, um den neu geladenen Einstiegspunkt aufzurufen.

Ein Benachrichtigungshook im Programm kann von der Hilfsfunktion nach jeder der folgenden Aktionen zurückgerufen werden:

  • beim Starten der Hilfsfunktion

  • unmittelbar vor dem Aufruf von LoadLibrary in der Hilfsfunktion

  • unmittelbar vor dem Aufruf von GetProcAddress in der Hilfsfunktion

  • bei fehlerhaftem Aufruf von LoadLibrary in der Hilfsfunktion

  • bei fehlerhaftem Aufruf von GetProcAddress in der Hilfsfunktion

  • nach Beendigung der Hilfsfunktion

Jeder solche Hookpunkt kann einen Wert zurückgeben, mit dem die normale Verarbeitung der Hilfsfunktion geändert wird, mit Ausnahme der Rückkehr zum verzögert geladenen Import-Thunk.

Der Standardcode der Hilfsfunktion befindet sich in Delayhlp.cpp und Delayimp.h (in vc\include) und ist in Delayimp.lib (in vc\lib) kompiliert. Diese Bibliothek muss beim Kompilieren eingeschlossen werden, es sei denn, eine eigene Hilfsfunktion wird geschrieben.

In den folgenden Themen wird die Hilfsfunktion beschrieben:

Siehe auch

Konzepte

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