请教各位大侠一个关于内存读取的问题
就你的图上所示,假设要读取这个2355.20浮点数
var
hwnd:cardinal;
pid:Dword;
hProcess:cardinal;
x:Pointer; // <---- 声明为通用指针Pointer类型
Num: cardinal;
begin
GetMem(x, 4); // <---- 分配内存,按single浮点类型的4字节来申请
ZeroMemory(x, 4); // <---- 清零该内存区域
hwnd := FindWindow(nil, '游戏');
GetWindowThreadProcessId (hwnd, @pid);
hProcess := OpenProcess(PROCESS_ALL_ACCESS, false, pid);
If hProcess <> 0 Then
begin
if ReadProcessMemory(hprocess,Pointer($007DA780), x, 4, num) then // <---- 007DA780
label1.Caption := FormatFloat('0.00', PSingle(x)^) // <---- 读取到的数据转为字符串
else
showmessage('读数失败~!');
end
else
showmessage('未启动程序');
CloseHandle(hProcess);
FreeMem(x); // <---- 释放内存
end;