LoadLibrary e AfxLoadLibrary
I processi chiamano LoadLibrary o AfxLoadLibraryper collegarsi in modo esplicito a una DLL.Se la funzione ha esito positivo, associa la DLL specificata nello spazio degli indirizzi del processo chiamante e restituisce l'handle alla DLL che può essere utilizzato con altre funzioni in esplicito collegare-, ad esempio GetProcAddress e FreeLibrary.
tentativi diLoadLibrary di individuare la dll utilizzando la stessa sequenza di ricerca utilizzata per il 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à mappato 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 di punto di ingresso non viene chiamata se la DLL è già connesso al processo a causa di una chiamata precedente a LoadLibrary senza chiamata corrispondente alla funzione di 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 sicurezza |
---|
Se il codice deve essere eseguito in Windows NT, Windows 2000, Windows XP (prima di SP1), assicurarsi 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, un file che non è quello previsto è stato possibile caricare. |