Laden aller Importe für eine verzögert geladene DLL
Die in delayhlp.cpp definierte __HrLoadAllImportsForDll-Funktion weist den Linker an, alle Importe aus einer DLL zu laden, die mit der Linkeroption /delayload festgelegt wurde.
Das Laden aller Importe ermöglicht Ihnen, die Fehlerbehandlung an einer Stelle im Code zu zentrieren, sodass in den eigentlichen Aufrufen der Importe keine Ausnahmebehandlung erforderlich ist.Außerdem wird dadurch eine Situation vermieden, in der ein Anwendungsprozess fehlschlägt, da ein Import vom Hilfscode nicht geladen werden konnte.
Das Verhalten von Hooks und der Fehlerbehandlung wird durch Aufrufen von __HrLoadAllImportsForDll nicht geändert; weitere Informationen finden Sie unter Fehlerbehandlung und Benachrichtigung.
Der DLL-Name, der __HrLoadAllImportsForDll übergeben wird, wird mit dem in der DLL selbst gespeicherten Namen verglichen; bei ihm wird die Groß- und Kleinschreibung berücksichtigt.
Im folgenden Beispiel wird veranschaulicht, wie Sie __HrLoadAllImportsForDll aufrufen:
if (FAILED(__HrLoadAllImportsForDll("delay1.dll"))) {
printf ( "failed on snap load, exiting\n" );
exit(2);
}