Entwickler-Ecke

Windows API - Speicheradresse von Methoden oder Objekten als String


jaenicke - Mi 02.06.04 14:07
Titel: Speicheradresse von Methoden oder Objekten als String
Hallo!

Ich suche eine Möglichkeit, wie ich die Adresse eines Objekts oder einer Funktion als String speichern bzw. anzeigen kann (für eine Log-Datei bzw. die eingebaute Fehlerberichterstattung meines Programms).

Das Problem ist nämlich, dass ich ohne diese Angabe den Programmablauf im Fehlerfall nicht nachvollziehen kann.

Danke schon mal,
Sebastian


Udontknow - Mi 02.06.04 15:43

Nun, das wirst du auch so nicht können. Die Adressen von Objekten sind bei jeder (Neu-)Erstellung andere. Stattdessen solltest du eine ordentliche Kapselung mittels try/except vornehmen und im Exception-Fall die relevanten Informationen ausgeben (Eventuell hast du Identifikationsmerkmale bei deinen Objekten, bei Komponenten z.B. der Name).

Adressen von Funktionen sind zwar ermittelbar, das macht jedoch (in meinen Augen) keinen Sinn. Notiere einfach, daß Funktion "sowieso" fehlgeschlagen ist.

Cu,
Udontknow


jaenicke - Mi 02.06.04 15:59

Das tue ich ja auch, und das wird ja auch in den Fehlerbericht hineingeschrieben. Das Problem ist nur, dass ich direkt Speicheradressen zuweise. Ich kann auch damit umgehen, aber, wenn ich versuche die dann in einen String umzuwandeln, funktioniert das nicht.

(Quelltext nutzt hier nix, denn ich habs schon mit mehreren Varianten ausprobiert, zudem habe ich den jetzt nicht da)


Udontknow - Mi 02.06.04 16:04

Also, wenn dein einziges Problem die Umwandlung ist... :


Delphi-Quelltext
1:
ShowMessage(IntToHex(Integer(MyObject),8));                    


Ich verstehe zwar nicht, was du dir davon versprichst, aber naja... :wink:

Cu,
Udontknow


jaenicke - Fr 04.06.04 12:52

Ah so, der cast auf Integer hatte gefehlt, darauf war ich nicht gekommen,

Danke
:D