我正在尝试在 C++ 64 位应用程序中获取模块的大小,代码如下所示。
MODULEENTRY32 me32;
memset( &me32, 0x0, sizeof( MODULEENTRY32 ) );
DWORD base = (DWORD)me32.modBaseAddr;
DWORD moduleSize= (DWORD)me32.modBaseSize ;
我用 32 位成功测试了这个,但在 64 上没有运气。由于它是 64 位,我认为 DWORD 可能不足以存储诸如整个模块大小之类的值。
进一步阅读后,我发现 uintptr_t 更适合如此高的值,但由于 me32.modBaseSize 返回 DWORD,我认为它不适用于 x64。
我可以使用什么替代方法来获取 modBaseSize,是否有此函数的 x64 版本或返回此信息的其他方式?