ReadProcessMemory (XE2 Problem)
Folgender Code zum auslesen eines Strings aus dem Speicher einer anderen Anwendung funktioniert unter Delphi XE Architect einwandfrei:
Code:
Beim Compiliren unter XE2 Architect bekomme ich folgende Fehlermeldung:
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;
Code:
Was mache ich daran falsch?
[DCC Fehler] TextReader.pas(58): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
Der Fehler bezieht sich auf den "ReadProcessMemory" Aufruf. |
AW: ReadProcessMemory (XE2 Problem)
Okay... War wohl etwas voreilig...
Es lag an einer nicht identischen Variablendeklaration:
Code:
ReadProcessMemoery erwartet als Typ NativeUInt und nicht den normalen UInt
var
mem_addr: integer; Wert: NativeUInt; name: string; Data: PWideChar; |
AW: ReadProcessMemory (XE2 Problem)
mem_addr als Integer kann auch nicht ganz stimmen.
(vorllam wenn es mal auf 64 Bit zu geht) Denn der Integer wächst nicht mit und dann paßt kein Pointer dort mehr rein. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz