Caricamento di tutte le importazioni per una DLL a caricamento ritardato
Utilizzando la funzione __HrLoadAllImportsForDll definita nel file delayhlp.cpp è possibile indicare al linker di eseguire il caricamento di tutte le importazioni da una DLL specificata con l'opzione del linker /delayload.
Tale caricamento consente di specificare la gestione degli errori in un punto del codice senza dover utilizzare la gestione delle eccezioni per le chiamate effettive alle importazioni.Il relativo utilizzo inoltre impedisce che, in seguito a un errore del codice di supporto relativo al caricamento di un'importazione, si verifichi un errore parziale anche nell'applicazione mentre è in corso un processo.
La chiamata a __HrLoadAllImportsForDll non modifica il comportamento degli hook e la gestione degli errori. Per ulteriori informazioni; vedere Gestione e notifica degli errori.
Il nome della DLL passato a __HrLoadAllImportsForDll viene confrontato con il nome archiviato nella DLL e viene rilevata la distinzione tra maiuscole e minuscole.
Nel seguente esempio è illustrato come effettuare una chiamata a __HrLoadAllImportsForDll:
if (FAILED(__HrLoadAllImportsForDll("delay1.dll"))) {
printf ( "failed on snap load, exiting\n" );
exit(2);
}