内存双字节读取!
当内存地址0x01005A60的值小于255也就是可以放在一个字节里的时候,使用下面程序可以正确的把直读出显示到m_edit中!但是当程序的值也就是扫雷这个游戏超过255个雷的时候,下面程序显示的数值就不对了!
假设你设置256个累的话,读出的值就是0,257是1,258是2!!
怎么修改下面的程序,避免这个错误,请大家帮帮忙!
////////////////////////////////////////////////////////////////
DWORD hProcId;
char* HP = new char[20];
HWND hWnd=::FindWindow(NULL,"扫雷");
GetWindowThreadProcessId(hWnd,&hProcId);
HANDLE nOK =OpenProcess(PROCESS_ALL_ACCESS|PROCESS_TERMINATE|PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE,FALSE,hProcId);
BOOL OK=ReadProcessMemory(nOK,(LPCVOID)0x01005A60,HP,1,NULL);
if (OK != TRUE)
MessageBox("失败);
m_edit.Format(_T("%d"),HP[0]);
UpdateData(FALSE);
/////////////////////////////////////////////////////////////////////