Soyez le premier à donner votre avis sur cette source.
Vue 4 851 fois - Téléchargée 355 fois
Utilisation de la sérialisation en mode console création d'un projet de test en console ajout au projet de la classe CObjectPoint (fichiers objectPoint.h et .cpp) rajout des includes #include <afxwin.h> #include "ObjectPoint.h" basculement du projet en utilisateur des MFC Project/Settings/General/Using MFC in DLL Test simple suivant : #include <afxwin.h> #include <iostream> using namespace std; #include "ObjectPoint.h" int main() { cout << "hello" << endl; return 0; } Utilisation de la sérialisation Il s'agit d'écrire et de lire dans un CFile à travers l'abstraction CArchive #include <afxwin.h> #include "ObjectPoint.h" int main() { //Sauvegarde char fic[]="test.ser"; { CFile fichier(fic,CFile::modeCreate | CFile::modeWrite); char texte[]="ecriture directe";//de taille 17 //écriture directe fichier.Write(texte, sizeof(texte)); //écriture indirecte CString str = "indirect - par archive";//de taille qque CArchive ar(&fichier, CArchive::store); ar << str; //écriture d'un objet de la classe CObjetPoint CObjectPoint p1(CPoint(10,50)), p2(CPoint(50,100)); p1.Serialize(ar);//utilisation de la méthode publique ou bien ... ar << p2;//...surcharge des opérateurs << et >> ar.Close(); fichier.Close(); } //Restauration { CFile fichier; fichier.Open ("test.ser", CFile::modeRead); char texte [20]; fichier.Read (texte,17);//pas terrible, il faut avoir la taille (il faudrait la stocker aussi) AfxMessageBox (texte); CString str;//pas besoin de la taille CArchive ar (&fichier, CArchive::load); ar >> str; AfxMessageBox (str); //Lecture d'objets de la classe CObjectPoint CObjectPoint p1, p2; p1.Serialize(ar); ar >> p2; CString s = "1er point:" + CString(p1) + ", 2e point:"+CString(p2); AfxMessageBox(s); ar.Close (); fichier.Close (); } return 0; }
19 oct. 2006 à 23:51
je veux simplement savoir est ce qu'on peut serialiser un objet qui n'est pas sérialisable c'est à dire qui n'a pas la methode "Serialize"
exemple :
un objet appartient a une dll.
je cherche la repence ca fait leng temps
merci de me repondre si possible
bonne nuit
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.