Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Serialisierung von Objekten

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.01.2005, 13:25 Uhr
~Max
Gast


Hi,
ich habe mit folgendes Codegerüst aus der MSDN in einer bereits bestehenden
Anwendung eine neue Klasse erstellt die ich serialisieren möchte; d.h. einzelne Werte
auf den Datenträger abspeichern.


C++:
//Header MySerial.h
class CMySerial :public CObject
{
public:

    DECLARE_SERIAL(CMySerial);

    CMySerial();
     void Serialize( CArchive& archive );

     CString m_name;
     WORD   m_number;

};

//CPP MySerial.cpp

#include "stdafx.h"
#include "MySerial.h"


IMPLEMENT_SERIAL( CMySerial, CObject, VERSIONABLE_SCHEMA | 1 )


void CMySerial::Serialize( CArchive& archive )
{
    // call base class function first
    // base class is CObject in this case
    CObject::Serialize( archive );

    // now do the stuff for our specific class
    if( archive.IsStoring() )
        archive << m_name << m_number;
    else
        archive >> m_name >> m_number;
}




Ich kriege folgende Fehlermeldung des Linkers:

MySerial.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"public: __thiscall CMySerial::CMySerial(void)" (??0CMySerial@@QAE@XZ)', verwiesen in Funktion '"public: static class CObject * __stdcall CMySerial::CreateObject(void)" (?CreateObject@CMySerial@@SGPAVCObject@@XZ)'
.\Debug/irgendwas.dll : fatal error LNK1120: 1 unaufgelöste externe Verweise


Kann mir bitte jemand weiterhelfen ?

Gruß,Max
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.01.2005, 13:27 Uhr
~Max
Gast


Ich muss natürlich auch den Konstruktor Definieren ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.01.2005, 13:30 Uhr
xXx
Devil


Was hälts du davon wenn du einfach mal in dem eBook Visual C++ in 21 Tagen nachguckst, da steht zumbeispiel das man virtual void Serialize.... macht usw...... Also oben(auf der Seite hier)auf ebooks drücken und dann mal in dem eBook nachgucken.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.01.2005, 14:43 Uhr
~Max
Gast


Da finde ich leider nichts.

Ich möchte eigentlich nur z.B. einen CString, oder Integer serialisieren.
Ich finde jedoch nur lauter Beispiele wo man eine Datei serialisieren kann...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.01.2005, 15:35 Uhr
xXx
Devil



C++:
class CMySerial : public CObject
{
DECLARE_SERIAL (CMyClass)
public:
virtual void Serialize(CArchive &ar);
CMySerial();
virtual ~CMySerial();
};

// Funktionen zum Setzen der Variablen
void SetName(CString Name) { m_Name = Name;}
void SetNumber(WORD Number) { m_number = Number;}

// Funktionen zum Holen der aktuellen Variableneinstellungen
CString GetName() {return m_name;}
WORD GetNumber() {return m_number;}


Ich weiß nicht ob ich irgendetwas überdurchschnittliches habe aber das stand da!

Dann musst de in deiner CMySerial.cpp Datei unter deinen #include und deinen #define

C++:
IMPLEMENT_SERIAL (CMySerial, CObject, 1)



Und dann ist deine Funktion zum schriebn und lesen in einem Archiv:

C++:
void CMySerial::Serialize(CArchive &ar)
{
     // Funktion der Basisklasse aufrufen
     CObject::Serialize(ar);

     // Wird geschrieben?
     if (ar.IsStoring())
     // Alle Variablen in der richtigen Reihenfolge schreiben
     ar << m_name << m_number;
     else
     // Alle Variablen in der richtigen Reihenfolge lesen
     ar >> m_name >> m_number;
}



So und das ist alles aus diesem eBook nur halt an deine Variablen angepast. Findest de in dem eBook unter Dateizugriff am Tag 13.

Das hier sollte dir aber auch schon weiterhelfen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: