NeedCurrentDirectoryForExePathA 函数 (processenv.h)
确定是否应将当前目录包含在指定可执行文件的搜索路径中。
语法
BOOL NeedCurrentDirectoryForExePathA(
[in] LPCSTR ExeName
);
参数
[in] ExeName
可执行文件的名称。
返回值
如果当前目录应是搜索路径的一部分,则返回值为 TRUE。 否则,返回值为 FALSE。
注解
只有在调用方必须将相对可执行名称显式解析为绝对名称的情况下,才应调用此函数。 如果使用相对可执行文件名称调用 CreateProcess ,则它将自动搜索可执行文件,并调用此函数来确定搜索路径。
大多数系统函数执行其自己的路径解析,因此,仅当尝试基于当前目录解析指定可执行文件的搜索路径时,才应调用此函数。
NoDefaultCurrentDirectoryInExePath 环境变量的值确定此函数返回的值。 但是,应调用此函数,而不是直接检查环境变量,因为此环境变量的注册表位置可能会更改。
如果 ExeName 参数的值包含反斜杠 (\) ,则此函数将始终返回 TRUE。 如果它不包含反斜杠,则会检查 NoDefaultCurrentDirectoryInExePath 环境变量是否存在,而不是其值。
“cmd.exe”可执行文件是应调用此函数而不是依赖 CreateProcess 中默认搜索路径解析算法的一个实例。 它调用此函数以确定命令搜索路径,因为它在调用 CreateProcess 之前执行自己的路径解析。 如果此函数返回 TRUE,cmd.exe 使用路径“.;可执行文件搜索的 %PATH%”。 如果返回 FALSE,则 cmd.exe 使用路径“%PATH%”进行搜索。
注意
processenv.h 标头将 NeedCurrentDirectoryForExePath 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | processenv.h (包括 Windows Vista 上的 Windows.h、Windows 7、Windows Server 2008 Windows Server 2008 R2) |
Library | Kernel32.lib |
DLL | Kernel32.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈