SetDllDirectoryA, fonction (winbase.h)
Ajoute un répertoire au chemin de recherche utilisé pour localiser les DLL de l’application.
Syntaxe
BOOL SetDllDirectoryA(
[in, optional] LPCSTR lpPathName
);
Paramètres
[in, optional] lpPathName
Répertoire à ajouter au chemin de recherche. Si ce paramètre est une chaîne vide ( » « ), l’appel supprime le répertoire actif de l’ordre de recherche DLL par défaut. Si ce paramètre est NULL, la fonction restaure l’ordre de recherche par défaut.
Valeur de retour
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Remarques
La fonction SetDllDirectory
Note
Pour les processus Win32 qui ne sont pas en cours d’exécution d’un processus empaqueté ou protégé, l’appel de cette fonction affecte également l’ordre de recherche DLL des processus enfants démarrés à partir du processus qui a appelé la fonction.
Après avoir appelé SetDllDirectory, le chemin de recherche DLL standard est :
- Répertoire à partir duquel l’application a chargé.
- Répertoire spécifié par le paramètre
lpPathName. - Répertoire système. Utilisez la fonction GetSystemDirectory pour obtenir le chemin d’accès de ce répertoire. Le nom de ce répertoire est System32.
- Répertoire système 16 bits. Il n’existe aucune fonction qui obtient le chemin d’accès de ce répertoire, mais elle est recherchée. Le nom de ce répertoire est System.
- Répertoire Windows. Utilisez la fonction GetWindowsDirectory pour obtenir le chemin d’accès de ce répertoire.
- Répertoires répertoriés dans la variable d’environnement PATH.
Pour revenir au chemin de recherche standard utilisé par LoadLibrary et LoadLibraryEx, appelez SetDllDirectory avec NULL. Cela restaure également le mode de recherche DLL sans échec en fonction de la valeur de Registre SafeDllSearchMode.
Pour compiler une application qui utilise cette fonction, définissez _WIN32_WINNT en tant que 0x0502 ou version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.
Note
L’en-tête winbase.h définit SetDllDirectory comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista, Windows XP avec SP1 [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winbase.h (inclure Windows.h) |
bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |