У меня есть значение HMODULE, равное: 00007FF695820000, и мне нужно, чтобы оно было
0x7FF695820000, но поскольку значение является правильным шестнадцатеричным значением, преобразование его в шестнадцатеричное просто делает его еще большим шестнадцатеричным значением.
Кто-нибудь знает способ, которым я могу просто добавить 0x к началу или заставить мой ReadProcessMemory думать, что это шестнадцатеричное значение, а не десятичное значение.
Причина, по которой это переменная HMODULE, заключается в том, что я использую ее для получения базового адреса для Solitare.exe, но в настоящее время не могу прочитать адреса из него, потому что мой ReadProcessMemory сначала просто преобразовывает его в шестнадцатеричный код, поэтому считывает неправильный адрес.
Упомянутый адрес 00007FF695820000
является uint64_t
целое число Чтобы вызвать функцию, вы должны заботиться о типе переменной, но не о ее визуальном представлении.
Вы можете прочитать память процесса следующим образом:
UINT_PTR addr = (UINT_PTR)GetModuleHandle("Solitare.exe");
ReadProcessMemory(hProc, (void*)addr, pBuffer, nSize, &BytesRead);
Использовать ReadProcessMemory
ваш hProc
ручка должна иметь PROCESS_VM_READ
разрешение на доступ.
Других решений пока нет …