怎样在64位系统中,用32位程序枚举出64位进程的所有DLL?
我的系统是win7 64位,我自己的程序编译成32位,我在这个程序中,用CreateToolhelp32Snapshot 枚举出所有进程,我发现是可以成功的,它能枚举出32位进程和64位进程。然后我还是用同样这个函数:CreateToolhelp32Snapshot,想枚举出进程中所有模块,结果我发现它能枚举出32位进程中所有模块,却不能枚举出64位进程中所有模块,下面这条语句:
HANDLE hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe32.th32ProcessID);
返回-1,也就是失败了,GetLastError()的结果是299,听说是什么32位进程试图访问64位进程的错误代码。
可是我用它枚举系统中所有进程的时候,是成功的,包括64位进程也能找到,但用它枚举64位进程中所有模块的时候,却失败。
有什么办法能解决这个问题?我希望在64位系统中,用32位程序,枚举出64位进程中所有模块。(为什么要这样?因为程序编译成32位是为了32位系统和64位系统通用)。