Het volgende probleem houdt me bezig. Ik heb een stuk geheugen wat er zo uit ziet:

en ik heb een pointer (var MijnPointer: Pointer) naar dit stuk geheugen. Zo kom ik aan deze pointer:
waarna ik een bep. functie uit een DLL dat stuk geheugen laat vullen, totdat het er uit ziet zoals weergegeven in het plaatje.
Mijn bedoeling lijkt simpel. Ik wil een stuk van dat geheugen als string inlezen en weergeven.
Hoe doe ik dit?
Ik heb teveel zitten experimenteren om aan te geven wat ik allemaal al geprobeerd heb. Het enige wat ik ooit terugkrijg is rotzooi of lege strings.
//edit
mijn laatste poging ziet er zo uit:

en ik heb een pointer (var MijnPointer: Pointer) naar dit stuk geheugen. Zo kom ik aan deze pointer:
code:
1
| MijnPointer:=:=SysGetMem($1EF58) |
waarna ik een bep. functie uit een DLL dat stuk geheugen laat vullen, totdat het er uit ziet zoals weergegeven in het plaatje.
Mijn bedoeling lijkt simpel. Ik wil een stuk van dat geheugen als string inlezen en weergeven.
Hoe doe ik dit?
Ik heb teveel zitten experimenteren om aan te geven wat ik allemaal al geprobeerd heb. Het enige wat ik ooit terugkrijg is rotzooi of lege strings.
//edit
mijn laatste poging ziet er zo uit:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
| var MijnPointer: Pointer; MijnStream: TMemoryStream; Buffer: PChar; begin MijnPointer:=SysGetMem($1EF58); [ .. ] //knip stuk waar geheugen gevuld wordt Mijnstream.Write(MijnPointer^,SizeOf(MijnPointer^); Mijstream.Position:=16; MijnStream.Read(Buffer,20); ShowMessage(Buffer); end; |
[ Voor 43% gewijzigd door Verwijderd op 02-02-2003 06:44 ]