我的代码是在win7 32bit上运行的,但是我用EnumProcessModules
的时候返回false,getlasterror()返回错误码299,说明程序是32bit,这个语句不能在64bit系统上运行。
我想知道为什么会发生这种情况,为什么系统认为我在 64 位操作系统上运行?
我使用的代码:
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPid);
if (hProcess)
{
HMODULE hMod = NULL;
DWORD cbNeeded = 0;
if (EnumProcessModules(hProcess, &hMod, sizeof(hMod), &cbNeeded))
{
//do something here...
}
}
dwPid 是我要操作的进程的 ID。
PS.这个错误只发生在我的一台测试机器上,其他都很好。那么这个问题可能与特定的机器或系统配置有关吗?