Grosse panique à bord... J'avais prévu d'utiliser la sérialisation fournie par les MFC pour mon appli et là il me semble que ce n'est pas possible !!! Au secour !!!
En fait, je souhaite souver au cours du temps les évolution d'un objet dans un fichier (Carchive lié à un CFile). Or cet objet est complexe (contient d'autres objets eux meme contenant...).
En gros je souhaitai faire pendant le deroulement de mon appli:
Dans ma tete, ca me permettait de stocker les évolutions de "monObjet". Le probleme dont je viens de me rendre compte est qu'il semble que si un objet donné (à une adresse donnée donc) est enregistré une fois, les appels successifs à "Serialize()" ne vont pas réécrire l'objet, mais seulement faire référence à son adresse dans le fichier !!! Ainsi, lorsque je charge à nouveau mes objets de la sorte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CArchive ar(&file, CArchive::store); monObjet.Serialize(ar) ; // ... modifs apportées à monObjet monObjet.Serialize(ar) ; // ... modifs apportées à monObjet monObjet.Serialize(ar) ; ... et ainsi de suite
et bien tous les affichages sont les meme !!! Et correspondent à l'objet initial avant toutes les modifications apportées dessus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CArchive ar(&file, CArchive::load); monObjet.Serialize(ar) ; monObjet.affiche(); monObjet.Serialize(ar) ; monObjet.affiche(); monObjet.Serialize(ar) ; monObjet.affiche();![]()
Y'a t'il un moyen de faire un reset et de forcer la ré-écriture des données ou alors est-ce que je suis vraiment dans la m@@@@@ ?
Partager