当我尝试以下代码时:
char pathStr[MAX_PATH];
DWORD pathLen = GetFullPathNameA("notepad++.exe", MAX_PATH, pathStr, NULL);
我在“pathStr”中输入了当前目录的路径,并在其末尾添加了“notepad++.exe”,而不是文件的真实路径......我在这里遗漏了什么吗?
您误解了该功能的用途。该函数的 Microsoft 文档 ( https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfullpathnamea ) 指出:
GetFullPathName 将当前驱动器和目录的名称与指定的文件名合并,以确定指定文件的完整路径和文件名。
您可以尝试 SearchPath 功能(https://docs.microsoft.com/en-us/windows/win32/api/processenv/nf-processenv-searchpatha)尝试仅从文件名中查找当前搜索路径中的可执行文件.