Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie kann ich einen Pointer ausgeben? (https://www.delphipraxis.net/90949-wie-kann-ich-einen-pointer-ausgeben.html)

Ares 26. Apr 2007 12:48


Wie kann ich einen Pointer ausgeben?
 
Hallo!

Ich würde gern den Wert eines Pointer ausgeben. Also nicht das worauf der Pointer zeigt, sondern den Zeiger selbst.

Wenn ich das richtig verstanden habe, ist ein Pointer ja nichts anderes als eine Variable in der die Speicheradresse gespeichert ist, unter der die eigentlichen Daten zu finden sind. Also müsst ich diese Adresse ja auch irgendwie ausgeben können. Aber wie? Es ist ja kein String oder ein Int den mit showMessage(MyPoint) oder showMessage(IntToStr(MyPointer)) ausgeben könnte...

Besten Dank
Ares

Dax 26. Apr 2007 13:00

Re: Wie kann ich einen Pointer ausgeben?
 
Da ein Pointer intern nichts anderes als ein Integer mit Flügeln, kannst du denselben ganz einfach (und der Konvention folgend) mit
Delphi-Quellcode:
IntToHex(Integer(ptr), 8)
in einen String umwandeln.

Ares 26. Apr 2007 13:10

Re: Wie kann ich einen Pointer ausgeben?
 
Delphi-Quellcode:
type pStr = ^string;

var ps : pStr;
...

showMessage(IntToHex(ps,8));
Das funktioniert leider nicht: Es gibt keine überladene Version von 'IntToHex', die man mit diesen Argumenten aufrufen kann.

SirThornberry 26. Apr 2007 13:18

Re: Wie kann ich einen Pointer ausgeben?
 
schau dir nochmal genau an was Dax gepostet hat. Wenn du es genau so machst funktioniert es auch!
bzw. sollte es so aussehen:
Delphi-Quellcode:
IntToHex(Cardinal(ptr), 8)
deine eine negative Speicheradresse wäre mir neu.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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