Функция NeedCurrentDirectoryForExePathA (processenv.h)
Определяет, следует ли включить текущий каталог в путь поиска для указанного исполняемого файла.
Синтаксис
BOOL NeedCurrentDirectoryForExePathA(
[in] LPCSTR ExeName
);
Параметры
[in] ExeName
Имя исполняемого файла.
Возвращаемое значение
Если текущий каталог должен быть частью пути поиска, возвращаемое значение равно TRUE. В противном случае возвращаемое значение равно FALSE.
Замечания
Эта функция должна вызываться только в экземплярах, где вызывающий объект должен явно разрешать относительное исполняемое имя абсолютному имени. Если createProcess вызывается с относительным именем исполняемого файла, он автоматически будет искать исполняемый файл, вызывая эту функцию для определения пути поиска.
Большинство системных функций выполняют собственное разрешение путей, поэтому эта функция должна вызываться только при попытке разрешить путь поиска указанного исполняемого файла на основе текущего каталога.
Значение переменной среды NoDefaultCurrentDirectoryInExePath определяет значение, возвращаемое этой функцией. Однако эту функцию следует вызывать, а не проверять переменную среды напрямую, так как расположение реестра этой переменной среды может измениться.
Если значение параметра exeName , содержит обратную косую черту (\), эта функция всегда возвращает ЗНАЧЕНИЕ TRUE. Если он не содержит обратную косую черту, проверяется существование переменной среды NoDefaultCurrentDirectoryInExePath, а не ее значение.
Пример экземпляра, когда эта функция должна вызываться вместо того, чтобы полагаться на алгоритм разрешения путей поиска по умолчанию в CreateProcess является исполняемым файлом "cmd.exe". Эта функция вызывает эту функцию для определения пути поиска команд, так как она выполняет собственное разрешение путей перед вызовом CreateProcess. Если эта функция возвращает значение TRUE, cmd.exe использует путь ".;%PATH%" для исполняемого поиска. Если он возвращает значение FALSE, cmd.exe использует путь "%PATH%" для поиска.
Заметка
Заголовок processenv.h определяет NeedCurrentDirectoryForExePath как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | processenv.h (включая Windows.h в Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |