Почему Read/WriteProcessMemory не принимает адрес памяти из переменной?
У меня есть адрес, который мне нужно прочитать, но я столкнулся с проблемой, а именно:
DWORD Adr = 0x284B103C830;
int buffer;
ReadProcessMemory(handle, (LPVOID)Adr, &buffer, sizeof(buffer), 0);
cout << buffer;
не работает ни при каких обстоятельствах, в то время как
int buffer;
ReadProcessMemory(handle, (LPVOID)0x284B103C830, &buffer, sizeof(buffer), 0);
cout << buffer;
работает исправно. Я сделал вывод что RPM и WPM по каким то причинам не могут получить адрес из переменной, как это можно исправить?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
У вас явно 64-разрядное приложение. Код
cout << sizeof(DWORD) << " " << sizeof(LPVOID) << endl;
выводит в этом случае
4 8
так что корректно поступить так — сразу записывать в переменную нужного размера:
LPVOID Adr = (LPVOID)0x284B103C830;