【发布时间】:2018-07-29 05:24:51
【问题描述】:
我想用pid来获取进程的完整路径。
#include <psapi.h>
HANDLE processHandle = NULL;
TCHAR filename[MAX_PATH];
processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, nPID);
if (processHandle != NULL)
{
if (GetModuleFileNameEx(processHandle, NULL, filename, MAX_PATH) == 0)
{
//fail to get module file name
}
else
{
//module file name : filename
}
CloseHandle(processHandle);
}
else
{
//fail to open process
}
这是使用pid获取进程路径的代码。
但是,当我执行它时,出现以下错误。
(我使用的是visual c ++ 6.0。)
Linking...
Process01Dlg.obj : error LNK2001: unresolved external symbol _GetModuleFileNameExA@16
Debug/Process01.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
- QueryFullProcessImageName
- GetModuleFileName
- GetModuleFileNameEx
- GetProcessImageFileName
以上所有方法都导致了错误。
这是版本问题吗?
请回答。谢谢你:)
【问题讨论】:
-
"...我正在使用 Visual c ++ 6.0..." 如果您的意思是 Visual Studio 6,请更新到较新的版本:en.wikipedia.org/wiki/Microsoft_Visual_Studio#6.0_(1998) MSVC 2017免费供个人/小型企业使用。
-
我有理由使用那个版本...
-
问题是所有的在线文档,而且我的记忆已经被淘汰了。 VC 6 附带的文档说该功能所需的库是什么?在线 MSDN 文档只能追溯到 Windows XP。 msdn.microsoft.com/en-us/library/windows/desktop/…
标签: c++ windows process path psapi