|
10鱼币
想读取一个游戏的一个参数,控件名是 m_fuzhong, 类型float这两个内存中存放的都是整形,但是需要做一个除法,单独获取显示都是正常的,但是做除法之后值是不对的。到底哪里有错误?
DWORD PID;
float all; //存放总负重
float part; //存放当前负重
DWORD really;
HWND hwnd=::FindWindow(NULL,"Droiyan Online");
if(!hwnd)
{
MessageBox("Please run the game!");
return;
}
::GetWindowThreadProcessId(hwnd,&PID);
HANDLE processH=::OpenProcess(PROCESS_ALL_ACCESS,NULL,PID);
LPCVOID pall=(LPCVOID)0x006606D8;//总负重
LPCVOID ppart=(LPCVOID)0x006606DA;//当前负重
LPVOID nall=(LPVOID)&all;
LPVOID npart=(LPVOID)∂
::ReadProcessMemory(processH,pall,nall,2,&really);
::ReadProcessMemory(processH,ppart,npart,2,&really);
m_fuzhong=(float)part/(float)all; //获取到的当前负重除以总负重 ,值就不对了,这是为什么?
UpdateData(false);
|
|