Je sais qu´il n´y a pas de rapport avec la création de jeux, mais si vous pouviez m´aidez quand meme, ce serai simpa
Je voudrais serialiser une classe qui contient un pointeur.
Ce pointeur doit pointer soit vers une classe ( CIcone) qui herite de CObject, soit vers une classe fille de CIcone ( CIconeFeu ou CIconeFleche), soit vers NULL.
J´ai trouvé dans des tutoriaux comment serialiser les pointeurs, meme avec polymorphisme :
les operateurs < < et > > existe pour la classe CObject et il faut les utiliser dans ce cas là :
Persistent pointers
How to write to disk, and recreate from disk?
– CArchive overloads < < and > > for pointers to objects of
type CObject.
– These < < and > > call the virtual function Serialize
– Classes derived from CObject inherit these < < and > >
operators
– The code needed ( some details left out here):
• in our class we override Serialize.
• Classes containing the pointers call < < or > >
Mon probleme, c´est que sa marche pas à l´ouverture de mon fichier. J´ai du me louper quelque part, mais je trouve pas où.
Pour declarer l´implementation de la serialisation, j´ai essayé :
( 1) IMPLEMENT_SERIAL ( CIconeFeu, CObject, 1) : il me dit " Mauvais format de fichier"
( 2) IMPLEMENT_SERIAL ( CIconeFeu, CIcone, 1) : il plante ( "assertion failed") au " return pDoc;" de la fonction OpenDocumentFile
Avec le debugueur et la methode ( 2), j´ai pu verifier qu´il passait bien dans les differents constructeurs selon la classe qui devait etre serialisé durant OpenDocumentFile.
J´ai aussi essayé en pointant uniquement sur la classe CIcone, et sa plante pareil. ( donc le probleme ne semble pas provenir du polymorphism)