Hi,
Du musst als Buffer die Adresse eines TPed Records übergeben und als 2. Parameter erwartet er ein Rekord. Du kannst die Adresse nicht auf einen Pointer casten. Das geht technisch nicht und macht auch keinen Sinn.
Delphi-Quellcode:
var ped: TPed;
p: Pointer;
begin
ReadProcessMemory(HandleWindow, Pointer($B6F5F0+$14),@p,SizeOf(Pointer),Wert);
ReadProcessMemory(HandleWindow, p, @ped, SizeOf(TPed), Wert);
ShowMessage(Format('X: %d, Y: %d, Z: %d',[ped.XPos,ped.YPos,ped.ZPos]));
end;
Es kann sein, dass du TPed und alle anderen Records als "packed record" definieren musst, damit es richtig funktioniert. Ich würde dir das jedenfalls empfehlen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."