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 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 processenv.h (包括 Windows Vista 上的 Windows.h、Windows 7、Windows Server 2008 Windows Server 2008 R2)
Kernel32.lib
DLL Kernel32.dll

另请参阅

CreateProcess

进程和线程函数