Fehler beim Serialisieren



  • --------------------------------------------------------------------------------

    hi,

    und zwar habe ich folgendes Problem. Ich habe ein CTyPtrArray im document was ich im kostruktor dynamisch allokiere. Jetzt habe ich probiert dieses Array zu serialisieren. Jedoch bekomme ich beim speichern eine Messagebox "Fehler beim Speichern des Dokumentes". Und folgende Fehlermeldung:

    Warning: Cannot call WriteClass/WriteObject for CObject.
    Eine Ausnahme (erste Chance) bei 0x7c812a5b in programm.exe: Microsoft C++-Ausnahme: CNotSupportedException an Speicherposition 0x0012efc0..

    Hat einer n Rat was ich falsche mache?

    PS: Das Object im CTypedPtrArray da habe ich schon die IMPLENT SERIAL usw eingebunden...

    mfg



  • Das scheint mir schon richtig zu sein, was soll es bringen Zeiger zu serialisieren? Du willst doch die dahinterstehenden Strukturen speichern. Sollte mich wundern, wenn es da eine standard Serialisierung gäbe, wenn dann müsstest du die Serialisierung für die Objekte im Array hinzufügen und dann das Array per Hand schreiben bzw. lesen.


  • Mod

    Wenn Du von CObArray abgeleitet hast müsset auch normal serialisiert werden.

    @connan: Die CObArray Implementierung serialisiert wirklich Ptr Arrays und legt beim Laden neue Objekte an. Es kann sogar dopplete Verweise auf Objekt im Serialisierungsvorgang erkennen.



  • Die Pointer müssen aber auf CObjects zeigen? Oder geht das mit ganz beliebigen Strukturen/Objekten?


  • Mod

    Korrekt! Dann geht es nur mit CObject.
    CTypedPtrArray hat keine eigene Serialize Funktion!

    Also erbt es diese nur. Folgerichtig kann man nur von CTypedPtrArray CObArray ageleitete Klassen serialisieren. CPtrArray kann dies natürlich nicht.

    Aber der OP hatte ja Bezug genommen auf CTypedPtrArray. Mit CArray sieht das wieder ganz anders aus.

    Ausweg ist eimmer eine eigene Serialize Funktion!



  • Danke für die Infos 🙂


Anmelden zum Antworten