Ajoute un répertoire au chemin de recherche utilisé pour localiser les DLL d'une application
#include <WinAPISys.au3>
_WinAPI_SetDllDirectory ( [$sDirPath = Default] )
$sDirPath | Le répertoire à ajouter au chemin de recherche. Si ce paramètre est la chaîne vide (""), l'appel supprime le répertoire courant de l'ordre de recherche des DLL par défaut. Si ce paramètre n'est pas spécifié, la fonction restaure l'ordre de recherche par défaut (option par défaut). |
Succès: | Retourne True. |
Échec: | Retourne False, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur. |
Cette fonction affecte tous les appels postérieurs aux fonctions _WinAPI_LoadLibrary() et _WinAPI_LoadLibraryEx().
Elle désactive aussi le mode de recherche de secours des DLLs tant que le répertoire spécifié est dans le chemin de recherche.
Après l'appel de _WinAPI_SetDllDirectory() , le chemin de recherche des DLL est:
1. Le répertoire à partir duquel l'application a été chargée.
2. Le répertoire spécifié par le paramètre $sFilePath.
3. Le répertoire système.
4. Le répertoire système 16 bits.
5. Le répertoire Windows.
6. Les répertoires qui sont répertoriés dans la variable d'environnement PATH.
_WinAPI_LoadLibrary, _WinAPI_LoadLibraryEx
Consultez SetDllDirectory dans la librairie MSDN.
#include <WinAPIRes.au3> #include <WinAPISys.au3> If Not _WinAPI_SetDllDirectory(@ScriptDir & '\Extras') Then Exit EndIf Local $hModule = _WinAPI_LoadLibraryEx('Resources.dll', $LOAD_LIBRARY_AS_DATAFILE) ConsoleWrite('Path: '& _WinAPI_GetDllDirectory() & @CRLF) ConsoleWrite('Module: '& $hModule & @CRLF) _WinAPI_FreeLibrary($hModule)