Fragen zu Pointern und Objekten

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

DAK

Betreff: Fragen zu Pointern und Objekten

BeitragSa, Feb 21, 2009 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann ich per Pointer die einzelnen Variablen eines Objekts byteweise auslesen?

Wenn ich einfach nur per Varptr einen Byte Ptr auf mein Objekt setzte, dann liegt die Adresse, auf die der Pointer zeigt meilenweit neben der Adresse, die ich krieg, wenn ich den Pointer auf die erste Variable des Objekts lege.
Was ich wissen müsste dafür is, woher ich den Pointer auf die erste Variable krieg, wenn ich nicht weiß, um was für eine Art Objekt sichs dabei handelt.

Außerdem müsst ich noch wissen, wie ich raus krieg, wie viele Bytes das Objekt groß ist.

Im Endausbau brauch ich eine Funktion, der ich ein beliebiges Objekt beliebigen Types übergeben kann und die mir dann byteweise den gesamten Inhalt des Objekts ausgibt.
Gewinner der 6. und der 68. BlitzCodeCompo

BtbN

BeitragSa, Feb 21, 2009 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Pointer in BMax sind nur dafür da, um mit C-Libs kommunizieren zu können. Im internen sprach-gebrauch sind sie zu vermeiden, da sie unvorhersehbare crashes verursachen und sicherheitslücken aufreissen können.

DAK

BeitragSo, Feb 22, 2009 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm... mist...

weiß wer, wie ich das problem sonst lösen könnt?
Gewinner der 6. und der 68. BlitzCodeCompo

BtbN

BeitragSo, Feb 22, 2009 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Was genau ist denn dein Problem?

DAK

BeitragSo, Feb 22, 2009 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ich möcht im endausbau ein type, von dem ich im vorhinein nicht weiß, wie das ausschaut, per netz verschicken.

das soll dann so ausschauen:

Host macht einen type und setzt ihn auf die 'synchronisierungsliste'.
Client macht das gleiche.
Client schickt eine synchronisierungsanfrage.
Host schickt den Type byteweise zum Clienten, der das ganze dann wieder zusammenbaut.
da hätt ich mir gedacht, dass ich mit pointern arbeiten kann und byteweise den type auslesen und schreiben kann..
würde dann hald nur gut gehen, wenn im type nur zahlen vorhanden wären, aber das wär ja kein so großes problem. muss ma hald strings, meshs, ... wo anderst hin packen.
Gewinner der 6. und der 68. BlitzCodeCompo
 

c64

BeitragSo, Feb 22, 2009 12:31
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm vllt. is ja Reflection eine Lösung ?!


mfg. C64
Betreten verboten! Kinder haften für ihre Eltern!

BtbN

BeitragSo, Feb 22, 2009 12:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür must du wohl dem Type eine Serialisierungs und eine Deserialisierungs Methode geben, der ihn in ein ByteArray verpackt oder gleich in einen stream schreibt/aus einem liest.
Per BytePtr ist davon extremst abzuraten, weil du dadurch am GC vorbei arbeitest was entweder zu einem crash oder extremen MemLeaks führt.

DAK

BeitragSo, Feb 22, 2009 13:03
Antworten mit Zitat
Benutzer-Profile anzeigen
das serialisierungs/deserialisierungszeugs geht an dem, was ich möchte, leider vorbei...

das mit den reflections klingt intressant... werd ich mir mal anschauen...
Gewinner der 6. und der 68. BlitzCodeCompo

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group