Adds a directory to the search path used to locate DLLs for the application.
Syntax
BOOL WINAPI SetDllDirectory(
__in_opt LPCTSTR lpPathName
);
Parameters
- lpPathName [in, optional]
-
The directory to be added to the search path. If this parameter is an empty string (""), the call removes the current directory from the default DLL search order. If this parameter is NULL, the function restores the default search order.
Return Value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call
GetLastError.
Remarks
The
SetDllDirectory function affects all subsequent calls to the
LoadLibrary and
LoadLibraryEx functions. It also effectively disables safe DLL search mode while the specified directory is in the search path.
After calling
SetDllDirectory, the DLL search path is:
- The directory from which the application loaded.
- The directory specified by the lpPathName parameter.
- The system directory. Use the
GetSystemDirectory function to get the path of this directory. The name of this directory is System32.
- The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched. The name of this directory is System.
- The Windows directory. Use the
GetWindowsDirectory function to get the path of this directory.
- The directories that are listed in the PATH environment variable.
To revert to the default search path used by
LoadLibrary and
LoadLibraryEx, call
SetDllDirectory with NULL. This also restores safe DLL search mode based on the SafeDllSearchMode registry value.
To compile an application that uses this function, define _WIN32_WINNT as 0x0502 or later. For more information, see
Using the Windows Headers.
Requirements
| Client | Requires Windows Vista or Windows XP SP1. |
| Server | Requires Windows Server 2008 or Windows Server 2003. |
| Header | Declared in Winbase.h; include Windows.h. |
| Library | Use Kernel32.lib. |
| DLL | Requires Kernel32.dll. |
| Unicode/ANSI | Implemented as SetDllDirectoryW (Unicode) and SetDllDirectoryA (ANSI). |
See Also
Dynamic-Link Library Search Order
GetDllDirectory
GetSystemDirectory
GetWindowsDirectory
LoadLibrary
LoadLibraryEx
Send comments about this topic to Microsoft
Build date: 8/7/2008