内存地址是2A1B064 怎么Edit1.text显示出来是乱码啊??
var
wnd:hwnd;
pid:hwnd;
pHandle:hwnd;
hp:pointer;
i:integer;
nSize:DWORD;
lpNumberOfBytesRead:DWORD;
begin
i:=$2A1B064;
nSize:=4;
hp:=AllocMem(nSize);
Wnd := FindWindow(nil,'Element Client');
GetWindowThreadProcessId(wnd,@pid);
pHandle:=OpenProcess(PROCESS_ALL_ACCESS,false,pid);ReadProcessMemory(pHandle,Pointer(i),hp,nSize,lpNumberOfBytesRead);
Edit1.text:=strpas(hp);end;
var
wnd:hwnd;
pid:hwnd;
pHandle:hwnd;
hp:pointer;
i:integer;
nSize:DWORD;
lpNumberOfBytesRead:DWORD;
begin
i:=$2A1B064;
nSize:=4;
hp:=AllocMem(nSize);
Wnd := FindWindow(nil,'Element Client');
GetWindowThreadProcessId(wnd,@pid);
pHandle:=OpenProcess(PROCESS_ALL_ACCESS,false,pid);ReadProcessMemory(pHandle,Pointer(i),hp,nSize,lpNumberOfBytesRead);
Edit1.text:=strpas(hp);end;
Edit1.Text := IntToStr(i);
i := 0;
Move(hp^, i, 1);
Edit1.Text := IntToStr(i);字显示:
i := 0;
Move(hp^, i, 2);
Edit1.Text := IntToStr(i);双字显示:
Move(hp^, i, 4);
Edit1.Text := IntToStr(i);
然后直接显示 hp 就一切正常,你非定义成指针干么