简单的内存读取问题,已困惑我百多天!!!!!
不是我太笨,是明师太少。求教各位,请点一二!
我已取得一内存地址0x022C5458,然后我想取得这个地址的一个十进制的数据.
现在我的部分源程序如下,但是现在当我取2位数时,一切正常,取3位数就不能正常显示了,就显示出负数。 我对内存读取这一块不熟悉,请大虾给我分析一二,在下感激不尽.另外, 在下特笨,好问问题,分数已快散尽,所以,只能给大虾20分了,原谅一二...
//得到线程id
GetWindowThreadProcessId(hWnd,&hProcId);
//取得线程
nOK = OpenProcess(PROCESS_ALL_ACCESS|PROCESS_TERMINATE|PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE,FALSE,hProcId);
//写入内存
Writeed =0x2B; //要修改的数值
WriteProcessMemory(nOK,(LPVOID)0x022C5458,&Writeed,1,NULL);
//读取内存
OK=ReadProcessMemory(nOK,(LPCVOID)0x022C5458,&buffer[0],1,NULL);
if(OK==TRUE)
{
//设定字样式
SetTextColor(hdc,RGB(0,255,0));
SetBkColor(hdc,RGB(0,0,0));
SetBkMode(hdc,OPAQUE);
// print the message
sprintf(msg_buf,"%d",buffer[0]);
TextOut(hdc,380,120,msg_buf,strlen(msg_buf));
return(0);
}