Поделиться через


Функция 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 [только классические приложения]
Целевая платформа Windows
Header processenv.h (включая Windows.h в Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CreateProcess

Функции процессов и потоков