LoadLibrary et AfxLoadLibraryLoadLibrary and AfxLoadLibrary

Les processus appellent LoadLibrary ou LoadLibraryEx pour une liaison explicite à une dll.Processes call LoadLibrary or LoadLibraryEx to explicitly link to a DLL. (Les applications MFC utilisent AfxLoadLibrary ou AfxLoadLibraryEx.) 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.(MFC apps use AfxLoadLibrary or AfxLoadLibraryEx.) If the function succeeds, it maps the specified DLL into the address space of the calling process, and returns a handle to the DLL. Le descripteur est requis dans d’autres fonctions utilisées pour la liaison explicite GetProcAddress , FreeLibrarypar exemple et.The handle is required in other functions used for explicit linking—for example, GetProcAddress and FreeLibrary. Pour plus d’informations, consultez liaison explicite.For more information, see Explicit linking.

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. LoadLibraryExvous donne davantage de contrôle sur l’ordre du chemin de recherche.LoadLibraryEx gives you more control over the search path order. Pour plus d’informations, consultez ordre de recherche de la bibliothèque de liens dynamiques.For more information, see Dynamic Link Library Search Order. Si le système ne peut pas trouver la DLL ou si la fonction de point d’entrée LoadLibrary retourne false, retourne la valeur null.If the system can't 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 LoadLibrary a LoadLibraryExappelé ou.If the DLL has an entry-point function, the operating system calls the function in the context of the thread that called LoadLibrary or LoadLibraryEx. La fonction de point d’entrée n’est pas appelée si la DLL est déjà attachée au processus.The entry-point function isn't called if the DLL is already attached to the process. Cela se produit lorsqu’un appel précédent LoadLibrary à LoadLibraryEx ou pour la dll n’a pas eu d’appel FreeLibrary correspondant à la fonction.That happens when a previous call to LoadLibrary or LoadLibraryEx for the DLL hasn't had a corresponding call to the FreeLibrary function.

Pour les applications MFC qui chargent des dll d’extension MFC, nous AfxLoadLibrary vous AfxLoadLibraryEx recommandons d' LoadLibrary utiliser LoadLibraryExou à la place de ou.For MFC applications that load MFC extension DLLs, we recommend that you use AfxLoadLibrary or AfxLoadLibraryEx instead of LoadLibrary or LoadLibraryEx. Les fonctions MFC gèrent la synchronisation des threads avant de charger la DLL explicitement.The MFC functions handle thread synchronization before loading the DLL explicitly. Les interfaces (prototypes de fonction) AfxLoadLibrary vers AfxLoadLibraryEx et sont les mêmes LoadLibrary que LoadLibraryExet.The interfaces (function prototypes) to AfxLoadLibrary and AfxLoadLibraryEx are the same as LoadLibrary and LoadLibraryEx.

Si Windows ne peut pas charger la DLL, votre processus peut tenter de récupérer à partir de l’erreur.If Windows can't load the DLL, your process can attempt to recover from the error. Par exemple, il peut informer l’utilisateur de l’erreur, puis demander un autre chemin d’accès à la DLL.For example, it could notify the user of the error, then ask for 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 peut être recherché en premier lors du chargement LoadLibrarydes fichiers par.The current directory may be searched first when files are loaded by LoadLibrary. Si vous ne qualifiez pas complètement le chemin d’accès du fichier, un fichier autre que celui prévu peut être chargé.If you don't fully qualify the path of the file, a file other than the intended one might be loaded. Quand vous créez une DLL, utilisez l’option de l’éditeur de liens /DEPENDENTLOADFLAG pour spécifier un ordre de recherche pour les dépendances de DLL liées statiquement.When you create a DLL, use the /DEPENDENTLOADFLAG linker option to specify a search order for statically linked DLL dependencies. Dans vos dll, utilisez les deux chemins d’accès complets pour les dépendances explicitement chargées, et LoadLibraryEx ou AfxLoadLibraryEx appelez des paramètres pour spécifier l’ordre de recherche des modules.Within your DLLs, use both complete paths to explicitly loaded dependencies, and LoadLibraryEx or AfxLoadLibraryEx call parameters to specify module search order. Pour plus d’informations, consultez sécurité de la bibliothèque de liens dynamiques et ordre de recherche de la bibliothèque de liens dynamiques.For more information, see Dynamic-Link Library Security and Dynamic Link Library Search Order.

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