Share via


LoadLibrary e AfxLoadLibrary

I processi chiamano LoadLibrary o AfxLoadLibrary per collegarsi in modo esplicito a una DLL. Se eseguita correttamente, la funzione associa la DLL specificata allo spazio degli indirizzi del processo chiamante e restituisce alla DLL un handle che può essere utilizzato con altre funzioni impiegate nel collegamento esplicito, ad esempio GetProcAddress e FreeLibrary.

LoadLibrary tenta di individuare la DLL utilizzando la stessa sequenza di ricerca impiegata nel collegamento implicito. Se il sistema non è in grado di trovare la DLL o se la funzione del punto di ingresso restituisce FALSE, LoadLibrary restituisce NULL. Se la chiamata a LoadLibrary specifica un modulo DLL già associato allo spazio degli indirizzi del processo chiamante, la funzione restituisce un handle della DLL e incrementa il conteggio dei riferimenti del modulo.

Se la DLL dispone di una funzione del punto di ingresso, il sistema operativo chiama la funzione nel contesto del thread che ha chiamato LoadLibrary. La funzione del punto di ingresso non viene chiamata se la DLL è già associata al processo per via di una chiamata precedente a LoadLibrary senza chiamata corrispondente alla funzione FreeLibrary.

Per le applicazioni MFC che caricano DLL di estensione, si consiglia di utilizzare AfxLoadLibrary anziché LoadLibrary. AfxLoadLibrary gestisce la sincronizzazione tra thread prima della chiamata a LoadLibrary. L'interfaccia (prototipo di funzione) per AfxLoadLibrary è la stessa di LoadLibrary.

Se risulta impossibile caricare la DLL, il processo può tentare la correzione dell'errore. Ad esempio, può notificare l'errore all'utente e richiedere che venga specificato un percorso diverso per la DLL.

Nota sulla sicurezzaNota sulla sicurezza

Se il codice deve essere eseguito in Windows NT 4, Windows 2000 o Windows XP (versione precedente alla SP1), accertarsi di specificare il percorso completo delle DLL. In questi sistemi operativi, al momento del caricamento dei file viene prima effettuata una ricerca nella directory corrente. Se non si specifica il percorso del file, è possibile che non venga caricato il file desiderato.

Scegliere l'argomento con cui si desidera procedere

Scegliere l'argomento su cui visualizzare maggiori informazioni

Vedere anche

Riferimenti

LoadLibrary

AfxLoadLibrary

Concetti

DLL