代码如下:
hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE32, dwPID );
if( hModuleSnap == INVALID_HANDLE_VALUE )
{
return( r_mi );
}
me32.dwSize = sizeof( MODULEENTRY32 );
if( !Module32First( hModuleSnap, &me32 ) )
{
CloseHandle( hModuleSnap );
return( r_mi );
}
do
{
MessageBoxA(0,me32.szModule,0,0);
} while( Module32Next( hModuleSnap, &me32 ) );
问题在于,当尝试从 64 位进程枚举 32 位进程的模块时,仅列出 x64 模块。
来自 TH32CS_SNAPMODULE32 的 MSDN: 从 64 位进程调用时,在快照中包含 th32ProcessID 中指定的进程的所有 32 位模块。
但是,它仍然只列出 x64 模块
有人知道解决这个问题的方法吗?
最佳答案
你必须使用TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE 感谢 Hans Passant 解决了这个问题。
关于c++ - 使用 Module32First/Next 从 64 位进程枚举 32 位进程模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31103190/