Перейти к содержанию

GetModuleHandle ошибка 126 не находит нужный модуль


Рекомендуемые сообщения

мне нужно получить адрес модуля, но функция почему-то не видит данный модуль в чем проблема?

вот код который я использую:


void Button1Click(HWND hWnd)
{
DWORD Radar = (DWORD)GetModuleHandleA("MassEffect.exe");
DWORD error = GetLastError();
}

после выполнения GetModuleHandle возвращается ошибка 126... Есть подозрение, что нельзя таким образом узнать адрес MassEffect.exe.

были мысли получить его открытием процесса функцией openprocess, которая возвращает HANDLE процесса, но как из хэнда получить адрес процесса?

Ссылка на комментарий
Поделиться на другие сайты

Причина кроется, в том, что у тебя скорее всего указано неверно имя модуля.

Вроде все правильно, вот листинг модулей процесса из ольки

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.jpeg

Ссылка на комментарий
Поделиться на другие сайты

Вроде все правильно, вот листинг модулей процесса из ольки

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.jpeg

тебе надо бы указывать имя процесса, смотри как называется exe файл игры.

Ссылка на комментарий
Поделиться на другие сайты

так exe файл игры и называет MassEffect.exe

Ах точно же, я знаю в чём твой косяк.

GetModuleHandle("имя модуля"), но это работает только изнутри процесса.

То есть это будет работать, если ты заинжектишь длл в игру.

А так тебе нужно через Module32First, Modue32Next.

Пример использования - http://msdn.microsoft.com/en-us/library/windows/desktop/ms686849(v=vs.85).aspx

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.