Serialization en mode console??CObject??

cs_lapiou Messages postés 4 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 23 février 2003 - 23 févr. 2003 à 01:10
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 - 23 févr. 2003 à 18:58
Bonjour, je voudrais utiliser la serialization en VC++ en mode win32 console.
Pour la serialization, il faut faire deriver la classe de CObject. Le probleme que celà passe à la compil lors d'un projet défini à la base en "MFC project" mais en mode console, la classe CObject n'est pas connue?!
Que faut-il fairte donc pr pouvoir utiliser la serialisation en mode console?

Merci d'avance

8 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 févr. 2003 à 10:49
Salut,
pourquoi tu insistes avec ta "serialisation", un terme de mfc comme tous les autres pour masquer le vrai code qu'il finira par produire a ta place mais surement pas mieux.
Surtout quel besoin de mfc en mode console ???
Sur WIN32 on ecrit ainsi:
HANDLE hfl;
DWORD val;
hfl = CreateFile(szName,.....);
if(hfl == INVALID_HANDLE_VALUE) {
// traite erreur...
return;
}
val = 0; WriteFile(hfl, &pData, sizedata, &val, 0);
CloseHandle(hfl);
if(val != sizedata) traite erreur...;
ciao...
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
23 févr. 2003 à 11:05
C'est marrant BruNews mais j'ai l'impression que tu es réfractaire à toute sorte de technologies très utiles et qui permettent la réutilisation du code (templates, STL, maintenant la sérialisation) et que tu aimes bien tout coder à la main. Certains te diront que c'est réinventer la roue à chaque fois, moi je te dirai que c'est une perte de temps.
Pourquoi ?

Kaid
0
cs_lapiou Messages postés 4 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 23 février 2003
23 févr. 2003 à 11:47
-------------------------------
Réponse au message :
-------------------------------

>
> C'est marrant BruNews mais j'ai l'impression que tu es réfractaire à toute sorte de technologies très utiles et qui permettent la réutilisation du code (templates, STL, maintenant la sérialisation) et que tu aimes bien tout coder à la main. Certains te diront que c'est réinventer la roue à chaque fois, moi je te dirai que c'est une perte de temps.
> Pourquoi ?
>
> Kaid
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> > pourquoi tu insistes avec ta "serialisation", un terme de mfc comme tous les autres pour masquer le vrai code qu'il finira par produire a ta place mais surement pas mieux.
> > Surtout quel besoin de mfc en mode console ???
> > Sur WIN32 on ecrit ainsi:
> > HANDLE hfl;
> > DWORD val;
> > hfl = CreateFile(szName,.....);
> > if(hfl == INVALID_HANDLE_VALUE) {
> > // traite erreur...
> > return;
> > }
> > val = 0; WriteFile(hfl, &pData, sizedata, &val, 0);
> > CloseHandle(hfl);
> > if(val != sizedata) traite erreur...;
> > ciao...
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Bonjour, je voudrais utiliser la serialization en VC++ en mode win32 console.
> > > Pour la serialization, il faut faire deriver la classe de CObject. Le probleme que celà passe à la compil lors d'un projet défini à la base en "MFC project" mais en mode console, la classe CObject n'est pas connue?!
> > > Que faut-il fairte donc pr pouvoir utiliser la serialisation en mode console?
> > >
> > > Merci d'avance
> >
>
ben sans meme debattre dessus (malgré le fait que ce que g lu dessus me parait bienb pratique ! ), g un projet c++ a faire et il devra utiliser la serialisation, ce qui est pratique kr bcp de type sont serializables.
Ma question reste donc entiere : comment faire de la serialization en mode console, pr que la classe CObject soie reconnue.?
0
cs_lapiou Messages postés 4 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 23 février 2003
23 févr. 2003 à 11:48
-------------------------------
Réponse au message :
-------------------------------

> ben sans meme debattre dessus (malgré le fait que ce que g lu dessus me parait bienb pratique ! ), g un projet c++ a faire et il devra utiliser la serialisation, ce qui est pratique kr bcp de type sont serializables.
> Ma question reste donc entiere : comment faire de la serialization en mode console, pr que la classe CObject soie reconnue.?

>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > C'est marrant BruNews mais j'ai l'impression que tu es réfractaire à toute sorte de technologies très utiles et qui permettent la réutilisation du code (templates, STL, maintenant la sérialisation) et que tu aimes bien tout coder à la main. Certains te diront que c'est réinventer la roue à chaque fois, moi je te dirai que c'est une perte de temps.
> > Pourquoi ?
> >
> > Kaid
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Salut,
> > > pourquoi tu insistes avec ta "serialisation", un terme de mfc comme tous les autres pour masquer le vrai code qu'il finira par produire a ta place mais surement pas mieux.
> > > Surtout quel besoin de mfc en mode console ???
> > > Sur WIN32 on ecrit ainsi:
> > > HANDLE hfl;
> > > DWORD val;
> > > hfl = CreateFile(szName,.....);
> > > if(hfl == INVALID_HANDLE_VALUE) {
> > > // traite erreur...
> > > return;
> > > }
> > > val = 0; WriteFile(hfl, &pData, sizedata, &val, 0);
> > > CloseHandle(hfl);
> > > if(val != sizedata) traite erreur...;
> > > ciao...
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Bonjour, je voudrais utiliser la serialization en VC++ en mode win32 console.
> > > > Pour la serialization, il faut faire deriver la classe de CObject. Le probleme que celà passe à la compil lors d'un projet défini à la base en "MFC project" mais en mode console, la classe CObject n'est pas connue?!
> > > > Que faut-il fairte donc pr pouvoir utiliser la serialisation en mode console?
> > > >
> > > > Merci d'avance
> > >
> >
> ben sans meme debattre dessus (malgré le fait que ce que g lu dessus me parait bienb pratique ! ), g un projet c++ a faire et il devra utiliser la serialisation, ce qui est pratique kr bcp de type sont serializables.
> Ma question reste donc entiere : comment faire de la serialization en mode console, pr que la classe CObject soie reconnue.?
>
>
>
>
>
>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 févr. 2003 à 11:49
salut Kaid,
non pas refractaire mais contre quand me semble improductif.
Vois comme lapiou s'emmerde avec cette serialiasation qui masque si bien ce qui se fera. Quel benef ? S'il apprenait directement API Win32 ce serait 1 seule, en quoi mon exemple est-il + long a ecrire. C'est tout autant reutilisable puisque WriteFile() etc sont definies une fois pour toutes.
Je vois que tu as vu ce que j'ai mis sur STL, ce n'est pas une question d'avis, je me boorne a regarder les resultats. Un code monstrueux et lourd alors que s'ecrirait beaucoup + vite en C et + performant. Donc encore ou est benef ?
Je suis pour le progres, faut-il qu'il soit au rdv.
Amicalement,
ciao...
0
cs_lapiou Messages postés 4 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 23 février 2003
23 févr. 2003 à 12:44
-------------------------------
Réponse au message :
-------------------------------
voilà, je veux par exemple mettre un objet ayant ces attributs ds un fichier..comment faire??

private:
int idexpo;
vector<oeuvre> oeuvres;
std::string salle;
std::string titre;
periode periodes;
motscle motscles[10];
std::string resume;

>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > ben sans meme debattre dessus (malgré le fait que ce que g lu dessus me parait bienb pratique ! ), g un projet c++ a faire et il devra utiliser la serialisation, ce qui est pratique kr bcp de type sont serializables.
> > Ma question reste donc entiere : comment faire de la serialization en mode console, pr que la classe CObject soie reconnue.?
>
> >
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > >
> > > C'est marrant BruNews mais j'ai l'impression que tu es réfractaire à toute sorte de technologies très utiles et qui permettent la réutilisation du code (templates, STL, maintenant la sérialisation) et que tu aimes bien tout coder à la main. Certains te diront que c'est réinventer la roue à chaque fois, moi je te dirai que c'est une perte de temps.
> > > Pourquoi ?
> > >
> > > Kaid
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Salut,
> > > > pourquoi tu insistes avec ta "serialisation", un terme de mfc comme tous les autres pour masquer le vrai code qu'il finira par produire a ta place mais surement pas mieux.
> > > > Surtout quel besoin de mfc en mode console ???
> > > > Sur WIN32 on ecrit ainsi:
> > > > HANDLE hfl;
> > > > DWORD val;
> > > > hfl = CreateFile(szName,.....);
> > > > if(hfl == INVALID_HANDLE_VALUE) {
> > > > // traite erreur...
> > > > return;
> > > > }
> > > > val = 0; WriteFile(hfl, &pData, sizedata, &val, 0);
> > > > CloseHandle(hfl);
> > > > if(val != sizedata) traite erreur...;
> > > > ciao...
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Bonjour, je voudrais utiliser la serialization en VC++ en mode win32 console.
> > > > > Pour la serialization, il faut faire deriver la classe de CObject. Le probleme que celà passe à la compil lors d'un projet défini à la base en "MFC project" mais en mode console, la classe CObject n'est pas connue?!
> > > > > Que faut-il fairte donc pr pouvoir utiliser la serialisation en mode console?
> > > > >
> > > > > Merci d'avance
> > > >
> > >
> > ben sans meme debattre dessus (malgré le fait que ce que g lu dessus me parait bienb pratique ! ), g un projet c++ a faire et il devra utiliser la serialisation, ce qui est pratique kr bcp de type sont serializables.
> > Ma question reste donc entiere : comment faire de la serialization en mode console, pr que la classe CObject soie reconnue.?
> >
> >
> >
> >
> >
> >
>
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
23 févr. 2003 à 14:26
Ta solution fonctionne effectivement très bien pour des données simples (nombres et chaines de caractères) mais comment tu fais pour gérér les relations entre objets ?

La STL c'est du C++ et pour moi le C++ (et les autres languages orienté-objet) est bien mieux structuré qu'un code en C. Bien sûr la STL n'est pas facile à prendre en main et tu peux écrire tes propres containeurs en C, mais elle à l'avantage d'être standard (enfin +/-). Donc réutilisable, connue et exempte de bugs par opposition à un containeur maison.

Pour finir, avec les processeurs actuels à 3 GHz je vois pas trop l'intérêt d'optimiser le code pour gagner 1 ms par là et une demi autre part. Surtout que c'est bien moins productif de faire de l'asm que du C ou C++.

Kaid
0
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
23 févr. 2003 à 18:58
bonjour au grand thread,
je viens de déposer une réponse à la question de la réutilisation du mécanisme de sérialisation à partir d'un projet console.
http://www.cppfrance.com/article.aspx?Val=1474

Il montre comment utiliser Serialize et/ou << >> sur des types MFC ou Perso.
Remarquons qu'il est toujours possible de faire des Read/Write sur l'archive pour les autres types que l'on veut écrire comme des paquets de Bytes...

j'espère que cela vous aidera.
0
Rejoignez-nous