Hi,
also ich bin langsam echt am verzweifeln, ich habe ne Funktion die mir ne speicheradresse auslesen soll(Speicherauszug). Ich übergebe die Startadresse und die Länge. Jetzt will ich aber zusätzlich noch die Info Start- und Endadresse in ein Logfile schreiben, was ich mit der Startadr. hinbekommen habe und nun versuche ich krampfhaft die länge auf die Startadresse zu addieren was ja theoretisch zur endadr. führen sollte
Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure ReadMem(StartAddr : Pointer; Len : integer); begin
ShowMessage(Format('Start Address: %p', [StartAddr]));
Move(StartAddr^, Buf, Len); Writeln(Datei, StrPas(Buf)); end; |
Aufrufen der Funktion mit:
Delphi-Quelltext
1:
| ReadMem(@Variable, SizeOf(Variable)); |
Ich hab jezt mal die ganzen Fehlerabfangmethoden weggelassen aus Zeitgründen
Ein weiteres Prob ist das die Anwendung zwar den Inhalt des Speicherbereichs in das File schreibt, allerdings danach einfach zu geht (wohl zu viele exceptions *g*)
Naja vielleicht könnt ihr mir sagen wie ich die Endadr. rausbekommen und was ich beim auslesen des speicherbereichs falsch mache. Hab in der hilfe irgendwas gelesen das man ne Pointer Variable ned Dereferenzieren kann, aber der Compiler hat irgendwie nix dagegen
Wenn ichs mit PChar mache hats auch ned funktioniert,
Bitte helft mir
mfg
Inferno