Delphi内存绝对地址访问问题
varaa:^integer;
begin
aa:=ptr($0D74C33B);
if aa^=$060000 then begin end; //此句出错,其它地址没问题,就这个地址$0D74C33B有问题,为何?
end;
答案:可以使用ReadProcessMemory
var
aa:integer;
ph:thandle;
ReadProcessMemory(ph,Pointer($0D74C33B),@aa,4,0);
if aa=$060000 then
begin
...
end;错误应该是 read error at $0D74C33B 吧
指针所访问的是Windows自动分配的虚拟内存,有些地址是保留的不可读取(例:$00000000),这样强制读取便会出错。