【问题标题】:GetFullPathNameA Returns Project's Path (WinAPI C) [SOLVED]GetFullPathNameA 返回项目的路径(WinAPI C)[已解决]
【发布时间】:2020-04-11 17:56:40
【问题描述】:

当我尝试以下代码时:

char pathStr[MAX_PATH];
DWORD pathLen = GetFullPathNameA("notepad++.exe", MAX_PATH, pathStr, NULL);

我在“pathStr”中输入了当前目录的路径,其末尾带有“notepad++.exe”,而不是文件的真实路径...我在这里遗漏了什么吗?

【问题讨论】:

  • GetFullPathName当前驱动器和目录的名称与指定的文件名合并
  • 我想你要找的函数是SearchPathW
  • 哦,好吧...那么还有另一种方法可以找到特定文件的路径吗?哈哈,我觉得自己像个白痴
  • 谢谢!:) @ErykSun
  • 如果在PATH目录下没有找到该文件,您也可以尝试AssocQueryStringW (ASSOCF_INIT_BYEXENAME) 并尝试在“[HKCU|]下枚举用户和系统App Paths HKLM]\Software\Microsoft\Windows\CurrentVersion\App 路径”。

标签: c windows winapi


【解决方案1】:

您误解了该函数的用途。该函数的 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) 尝试仅根据文件名在当前搜索路径中查找可执行文件。

【讨论】:

  • 谢谢,我试试看:)
猜你喜欢
  • 2016-05-27
  • 2020-09-15
  • 2013-01-24
  • 2021-05-25
  • 1970-01-01
  • 2017-02-28
  • 1970-01-01
  • 1970-01-01
  • 2013-05-15
相关资源
最近更新 更多