Folgender Code zum auslesen eines Strings aus dem Speicher einer anderen Anwendung funktioniert unter Delphi XE Architect einwandfrei:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
mem_addr: integer;
Wert: UInt;
name: string;
Data: PWideChar;
begin
OPEN_PROCESS;
mem_addr := PointerSolve(process_handle, Mem_Text1);
RichEdit1.Clear;
name := '';
GetMem(Data, 10000);
ReadProcessMemory(process_handle, ptr(mem_addr), Data, 10000, Wert);
name := WideCharToString(Data);
RichEdit1.Text := name;
mem_addr := PointerSolve(ao_handle, Mem_Text2);
RichEdit2.Clear;
name := '';
GetMem(Data, 10000);
ReadProcessMemory(preocess_handle, ptr(mem_addr), Data, 10000, Wert);
name := WideCharToString(Data);
RichEdit2.Text := name;
CLOSE_PROCESS;
end;
Beim Compiliren unter XE2 Architect bekomme ich folgende Fehlermeldung:
Code:
[DCC Fehler] TextReader.pas(58): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
Was mache ich daran falsch?
Der Fehler bezieht sich auf den "ReadProcessMemory" Aufruf.