从32位进程枚举32位进程时,CreateToolhelp32Snapshot失败

时间:2013-08-12 01:40:57

标签: c++ winapi

我正在用c ++编写一个基本的调试器。我试图从调试器进程获取已调试进程的已加载模块的列表。我的操作系统是64位Windows 7,但调试器和调试对象都编译为32位(在任务管理器中查看时,它们的名称旁边有* 32)。

每当我尝试从调试器调用调试对象上的CreateToolhelpSnapshot时,都会收到299错误。 MSDN表示只有在从32位开启查询64位进程时才会发生这种情况,反之亦然。据我所知,我的两个进程都是32位。

这是我的快照代码:

HANDLE hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE32, pid);
if( hModuleSnap == INVALID_HANDLE_VALUE )
{
    std::cout << "CreateToolhelp32Snapshot Error: " << GetLastError() << std::endl;
}

0 个答案:

没有答案