Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   ReadProcessMemory (XE2 Problem) (https://www.delphipraxis.net/166223-readprocessmemory-xe2-problem.html)

neuronet 3. Feb 2012 12:44

ReadProcessMemory (XE2 Problem)
 
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.

neuronet 3. Feb 2012 12:48

AW: ReadProcessMemory (XE2 Problem)
 
Okay... War wohl etwas voreilig...

Es lag an einer nicht identischen Variablendeklaration:

Code:
var
  mem_addr: integer;
  Wert: NativeUInt;
  name: string;
  Data: PWideChar;
ReadProcessMemoery erwartet als Typ NativeUInt und nicht den normalen UInt

himitsu 3. Feb 2012 13:06

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