LoadLibrary et AfxLoadLibraryLoadLibrary and AfxLoadLibrary

Les processus appellent LoadLibraryExA ou LoadLibraryExW (ou AfxLoadLibrary) pour établir une liaison explicite à une dll.Processes call LoadLibraryExA or LoadLibraryExW (or AfxLoadLibrary) to explicitly link to a DLL. Si la fonction est réussie, elle mappe la DLL spécifiée dans l’espace d’adressage du processus appelant et retourne un handle vers la dll qui peut être utilisée avec d’autres fonctions dans une liaison explicite, par GetProcAddress exemple FreeLibraryet.If the function succeeds, it maps the specified DLL into the address space of the calling process and returns a handle to the DLL that can be used with other functions in explicit linking—for example, GetProcAddress and FreeLibrary.

LoadLibrarytente de localiser la DLL à l’aide de la même séquence de recherche que celle utilisée pour la liaison implicite.LoadLibrary attempts to locate the DLL by using the same search sequence that is used for implicit linking. Si le système ne trouve pas la dll ou si la fonction de point d’entrée retourne LoadLibrary false, retourne la valeur null.If the system cannot find the DLL or if the entry-point function returns FALSE, LoadLibrary returns NULL. Si l’appel à LoadLibrary spécifie un module dll qui est déjà mappé dans l’espace d’adressage du processus appelant, la fonction retourne un handle de la dll et incrémente le décompte de références du module.If the call to LoadLibrary specifies a DLL module that is already mapped into the address space of the calling process, the function returns a handle of the DLL and increments the reference count of the module.

Si la DLL a une fonction de point d’entrée, le système d’exploitation appelle la fonction dans le contexte du thread qui LoadLibrarya appelé.If the DLL has an entry-point function, the operating system calls the function in the context of the thread that called LoadLibrary. La fonction de point d’entrée n’est pas appelée si la dll est déjà attachée au processus en raison d’un LoadLibrary appel précédent à qui n’a pas FreeLibrary d’appel correspondant à la fonction.The entry-point function is not called if the DLL is already attached to the process because of a previous call to LoadLibrary that has no corresponding call to the FreeLibrary function.

Pour les applications MFC qui chargent des dll d’extension MFC, nous AfxLoadLibrary vous recommandons LoadLibraryd’utiliser au lieu de.For MFC applications that load MFC extension DLLs, we recommend that you use AfxLoadLibrary instead of LoadLibrary. AfxLoadLibrarygère la synchronisation des threads LoadLibraryavant d’appeler.AfxLoadLibrary handles thread synchronization before you call LoadLibrary. L’interface (prototype de fonction) AfxLoadLibrary est LoadLibraryidentique à.The interface (function prototype) to AfxLoadLibrary is the same as LoadLibrary.

Si Windows ne peut pas charger la DLL, le processus peut tenter de récupérer à partir de l’erreur.If Windows cannot load the DLL, the process can attempt to recover from the error. Par exemple, le processus peut informer l’utilisateur de l’erreur et demander à l’utilisateur de spécifier un autre chemin d’accès à la DLL.For example, the process could notify the user of the error and ask the user to specify another path to the DLL.

Important

Veillez à spécifier le chemin d’accès complet des dll.Make sure to specify the full path of any DLLs. Le répertoire actif est recherché en premier lors du chargement des fichiers.The current directory is searched first when files are loaded. Si vous ne qualifiez pas le chemin d’accès du fichier, un fichier qui n’est pas celui prévu peut être chargé.If you do not qualify the path of the file, a file that is not the intended one might be loaded. Pour éviter cela, vous pouvez également utiliser l’option de l’éditeur de liens /DEPENDENTLOADFLAG .Another way to prevent this is by using the /DEPENDENTLOADFLAG linker option.

Que voulez-vous faire ?What do you want to do?

Sur quels éléments souhaitez-vous obtenir des informations supplémentaires ?What do you want to know more about?

Voir aussiSee also