Objekt -> Speicheradresse -> Objekt
Übersicht

![]() |
RatchetBetreff: Objekt -> Speicheradresse -> Objekt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich kann mir ja mit Object.ToString() die Speicheradresse des Objekts als Hex-Code ausgeben lassen. Ist es irgendwie möglich mit diesem Hex-String wieder auf das Objekt zuzugreifen? Theoretisch müsste ich doch den Hex-Wert nur in einen Integer umwandeln, auf diese Adresse zugreifen und dann mit dem entsprechenden Objekttypen Typecasten; aber wie? | ||
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro] |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, ist es. Über HandleToObject/HandleFromObject:
Code: [AUSKLAPPEN] Global obj:TImage=CreateImage(10,10)
Print obj.toString() Print Int(obj.toString().Replace("0x","$")) Global pt:Byte Ptr = Byte Ptr(obj.toString().Replace("0x","$").toInt()) Local tmp:Int = HandleFromObject(obj) Global obj2:TImage = TImage(HandleToObject(tmp)) Release(tmp) If obj2 = obj Then Print "Juhu!" End Ps: Wahlweise kann die zeile Code: [AUSKLAPPEN] Global pt:Byte Ptr = Byte Ptr(obj.toString().Replace("0x","$").toInt()) auch durch
Code: [AUSKLAPPEN] Global pt:Byte Ptr = Varptr obj ersetzt werden. ![]() |
||
![]() |
Ratchet |
![]() Antworten mit Zitat ![]() |
---|---|---|
HandleFromObject und HandleToObject hab ich gesucht. Mir war doch so als würde es da was geben. Dankeschön! | ||
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro] |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber immer schön ans release denken.
Und bedenke auch: Das ist eine SEHR unschöne lösung. Es wäre problemlos möglich, einen poiner in ein Type-Handle umzuwandeln. Aber da stellt sich BMax (noch?) quer. eine lösung dafür wäre eventuell eine mini-C-Funktion: Code: [AUSKLAPPEN] void* byte_ptr_to_object(void* in) {return in;}
Wenn ich das richtig denke, könnte man dieser funktion in BMax als eingabe-type Byte Ptr geben, und als rückgabe-Type Object. Damit wäre das Problem dann behoben. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group