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,我只想知道为什么它无法正常工作以及如何修复它。