IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC][serialisation] erreur lors du chargement


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 50
    Par défaut [MFC][serialisation] erreur lors du chargement
    bonjour,
    la sérialisation dans mon application tourne autour de 2 classes:
    graph et node;

    graph.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class Graph : public CObject
    {
    public :
    CArray<Node*,Node*> m_tab_nodes ;
    /*......*/
     
    DECLARE_SERIAL(Graph);
    void Serialize(CArchive& ar);
    }
    graph.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    template <> static void AFXAPI SerializeElements<Node*> ( CArchive& ar, Node** pN, int nCount )
    {
        for ( int i = 0; i < nCount; i++, pN++ )
        {
    	(*pN)->Serialize(ar);
        }
    }
     
    IMPLEMENT_SERIAL (Graph, CObject, 1);
     
    void Graph::Serialize(CArchive& ar)
    {
    	CObject::Serialize(ar);
    	m_tab_nodes.Serialize(ar);
    }
    Node.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class Node :public CObject
    {
     
    /*....*/
    DECLARE_SERIAL(Node);
    void Serialize(CArchive& ar);
     
    };
    Node.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
     
    IMPLEMENT_SERIAL (Node, CObject, 1);
     
    void Node::Serialize(CArchive& ar)
    {
    CObject::Serialize(ar);
     
     
    if (ar.IsStoring())
    {
     
    	ar<</*mes attributs int/CString*/;
     
    }
    else
    {
     
    	ar>>/*mes attributs int/CString*/;
     
    	}

    la sauvegarde se passe sans problème (du moins il me semble car le nCount vaut bien le nombre de Node que j'ai enregistré ).
    lors du chargement l' erreur vient de la ligne :
    (*pN) étant un pointeur sur NULL ,ca plante.Je ne vois pas quoi faire pour contourner cette erreur

    la faq indique qu il faut mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    template<> static void AFXAPI SerializeElements<Node*> ( CArchive& ar, Node** pN, int nCount );
    dans graph.h, mais quand je le fais j'ai une erreur de compile:
    error C2129: static function 'void __stdcall SerializeElements(class CArchive &,class Node ** ,int)' declared but not defined
    je l'ai donc enlever.


    j'ai bien regarder la faq et je ne vois pas se que je vais comme erreur.
    merci d'avance.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut revois la faq il n'y a pas de static dans le .h:
    (c'etait vrai a une epoque ,j'ai modifié depuis au moins 3 mois ...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    template<> void AFXAPI SerializeElements<CItem> (CArchive& ar, CItem* pElements, int nCount);

Discussions similaires

  1. erreur lors du chargement d'un fichier swf
    Par pseudobidon57 dans le forum Général VBA
    Réponses: 2
    Dernier message: 05/11/2006, 13h56
  2. [JSF]Erreur lors du chargement dans tomcat
    Par djodjo dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 17/02/2006, 20h48
  3. [ImageMagick] Erreur lors du chargement de l'image générée
    Par hutchuck dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 29/11/2005, 12h50
  4. [w2k] Erreur lors du chargement du système d'exploitati
    Par ggnore dans le forum Windows XP
    Réponses: 7
    Dernier message: 16/11/2005, 19h24
  5. erreur lors du chargement du système d'esploitati
    Par ktel dans le forum Windows XP
    Réponses: 2
    Dernier message: 15/11/2005, 09h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo