Module32First(..., ...)
всегда возвращает FALSE
Я нашел в CheatEngine StaticAddress
HP, и чтобы получить HP в программе c ++, мне нужно получить базовый адрес игры."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"
.Идентификатор приложения найден успешным, потому что я могу читать HP, используя динамический адрес.И я решил, что я написал неправильное название модуля.Я также пытался найти адреса некоторых .dll, используемых в процессе Path of Exile, но это также не работает.Но он всегда возвращает 0 из-за первого if (...);Я плохо знаю, как работать с этим API, и я просто хочу знать, почему он не может работать и как это исправить.