Eigene Klasse mit CArray-Membern speichern ???
-
Hi allerseits,
vielleicht habe ich ja ein riesiges Brett vorm Kopf, aber die Serialisierung meiner Klasse läuft kein bischen.
Es sieht da so aus:class CMessSpeicher : public CObject { DECLARE_SERIAL (CMessSpeicher) //IMPLEMENT_SERIAL in MessSpeicher.cpp OK public: void Serialize(CArchive& ar); CArray<int,int> DatenFreqL;//Meine Daten CArray<int,int> DatenDaempfL; CArray<int,int> DatenFreqR; CArray<int,int> DatenDaempfR; CMessSpeicher(); virtual ~CMessSpeicher(); };Die Funktion Serialize sieht so aus
void CMessSpeicher::Serialize(CArchive &ar) { if (ar.IsStoring()) { ar << DatenFreqL; ar << DatenDaempfL; ar << DatenFreqR; ar << DatenDaempfR; } else { ar >> DatenFreqL; ar >> DatenDaempfL; ar >> DatenFreqR; ar >> DatenDaempfR; } }Aus der Klasse C...Doc rufe ich aus C...Doc::Serialize mit einer Instanz meiner Klasse die Funktion CMessSpeicher::Serialize auf, also eigentlich alles wie in irgendwelchen Beispielen.
Wieso läuft das so nicht , weiß einer da bescheid???
-
Bekommst Du keine Fehlermeldungen?
-
Das soll bei dir ohne Fehlermeldung kompiliert worden sein?
Versuch es mal so:
void CMessSpeicher::Serialize(CArchive &ar) { DatenFreqL.Serialize(ar); DatenDaempfL.Serialize(ar); DatenFreqR.Serialize(ar); DatenDaempfR.Serialize(ar); }
-
Hi,
@ _gast: Und ob ich eine Fehlermeldung bekomme!!!
@Nemesyzz:
Funktioniert!!!
Na klar, da CArray von CObject abgeleitet ist hat es wohl auch eine eigene Serialize-Funktion.
Danke, Brett ist weg vom Kopf.
So long.