Module32First()返回FALSE

时间:2019-07-06 10:23:29

标签: c++ winapi

Module32First(..., ...)始终返回FALSE

我在HP的CheatEngine StaticAddress中找到了,要在c ++程序中获得HP,我需要获取游戏基本地址。 "PathOfExile_x64Steam.exe"+01DE7AC8

    DWORD dwModuleBaseAddress = 0;
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pID);
    MODULEENTRY32 ModuleEntry32 = { 0 };
    ModuleEntry32.dwSize = sizeof(MODULEENTRY32);

    if (Module32First(hSnapshot, &ModuleEntry32))
    {
       ...
    }
}

此函数应返回基地址,我在这里找到它:https://pastebin.com/BF1ESSgz 在这段代码中,我将模块名称更改为"PathOfExile_x64Steam.exe",并将窗口名称更改为"Path of Exile"。 发现应用程序ID成功,因为我可以使用动态地址读取hp。而且我认为我写的模块名称错误。我还尝试查找流放路径进程中使用的某些.dll的地址,但它也不起作用。 但是由于第一个if(...);它总是返回0。 我非常不知道该如何使用该api,我只想知道为什么它无法正常工作以及如何修复它。

0 个答案:

没有答案