Функция SetDllDirectoryA (winbase.h)
Добавляет каталог в путь поиска, используемый для поиска библиотек DLL для приложения.
Синтаксис
BOOL SetDllDirectoryA(
[in, optional] LPCSTR lpPathName
);
Параметры
[in, optional] lpPathName
Каталог, добавляемый в путь поиска. Если этот параметр является пустой строкой (""), вызов удаляет текущий каталог из порядка поиска библиотеки DLL по умолчанию. Если этот параметр имеет значение NULL, функция восстанавливает порядок поиска по умолчанию.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение ненулевое.
Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
Функция setDllDirectory
Заметка
Для процессов Win32, которые не выполняя упакованный или защищенный процесс, вызов этой функции также повлияет на порядок поиска библиотек DLL дочерних процессов, запущенных из процесса, который вызвал функцию.
После вызова SetDllDirectoryиспользуется стандартный путь поиска библиотеки DLL:
- Каталог, из которого загружено приложение.
- Каталог, указанный параметром lpPathName.
- Системный каталог. Используйте функцию GetSystemDirectory
, чтобы получить путь к этому каталогу. Имя этого каталога — System32. - 16-разрядный системный каталог. Нет функции, которая получает путь к этому каталогу, но выполняется поиск. Имя этого каталога — System.
- Каталог Windows. Используйте функцию getWindowsDirectory
GetWindowsDirectory, чтобы получить путь к этому каталогу. - Каталоги, перечисленные в переменной среды PATH.
Чтобы вернуться к стандартному пути поиска, используемому LoadLibrary и LoadLibraryEx, вызовите SetDllDirectory с значением NULL. Это также восстанавливает безопасный режим поиска DLL на основе значения реестра SafeDllSearchMod e.
Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0502 или более поздней версии. Дополнительные сведения см. в разделе Использование заголовков Windows.
Заметка
Заголовок winbase.h определяет SetDllDirectory как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista, Windows XP с пакетом обновления 1 (SP1) [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winbase.h (включая Windows.h) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |
См. также
порядка поиска библиотеки