【发布时间】:2019-12-13 12:47:19
【问题描述】:
代码如下:
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 模块。
来自 MSDN 的 TH32CS_SNAPMODULE32: 当从 64 位进程调用时,包括快照中 th32ProcessID 中指定的进程的所有 32 位模块。
但是,它仍然只列出 x64 模块
有人知道解决这个问题的方法吗?
【问题讨论】:
-
你必须使用 TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE
-
工作。非常感谢!
-
@HansPassant:应该作为答案而不是评论发布。