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 :

Probl�me avec la s�rialisation


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre tr�s actif Avatar de subzero01
    Inscrit en
    D�cembre 2007
    Messages
    281
    D�tails du profil
    Informations personnelles :
    �ge : 41

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 281
    Par d�faut Probl�me avec la s�rialisation
    Bonjour,
    J'ai un �trange probl�me avec la s�rialisation, je vous explique ci dessous.
    J'ai cr�� une simple application MFC Dialog based, j'y ai mis un btn pour enregistrer mes variables membres de la boite de dialogue dans un fichier en passant par la s�rialisation.
    Tout marche comme pr�vu, les donn�es sont bien enregistr�es, et bien r�cup�r�es au d�marrage de mon application.
    Mais cette r�cup�ration de donn�es ne se fait pas si mon application d�marre avec Windows !!! (j'ai mis le chemin de mon exe dans la base de registre � l'endroit HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    Merci de m'aider avec vos points de vue.
    Cordialement.

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    Probl�me de droit d'acc�s sur le fichier ?
    Personne n'est encore connect� sur la machine donc c'est un compte de service qui le lance, non ?

  3. #3
    Membre tr�s actif Avatar de subzero01
    Inscrit en
    D�cembre 2007
    Messages
    281
    D�tails du profil
    Informations personnelles :
    �ge : 41

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 281
    Par d�faut
    Bonjour bacelar,
    j'ai r�alis� un petit exemple pour verifier exactement l'endroit o� ca marche pas, et j'ai mis des messageboxs,
    l'ouverture du fichier se d�roule normalement, mais c'est la lecture dans la fonction Serialize qui ne se fait pas normalement.
    Tu peux toi meme tenter d'essayer en cr�ant une simple Dialog based, et essayant de sauvegarder par exemple l'etat d'un check box dans un fichier avec la s�rialisation.
    merci pour la r�ponse.

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    Quelle est la primitive qui ne fonctionne pas ?
    Quel est le code d'erreur retourn� ?

  5. #5
    Membre tr�s actif Avatar de subzero01
    Inscrit en
    D�cembre 2007
    Messages
    281
    D�tails du profil
    Informations personnelles :
    �ge : 41

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 281
    Par d�faut
    il n'y a pas d'erreur, le probleme c'est que l'objet CArchive pass� en param�tre a la methode Serialize ne lit pas les donn�es a partir du fichier, (je rappelle que l'ouverture se passe bien), du coup, mes variables membres ne sont pas initialis�es !
    voici une portion du code de la methode serialize:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void CtestDlg::Serialize(CArchive& ar)
    {
    	if (ar.IsStoring())
    	{	// storing code
    		ar<<m_bCheckState;
    	}
    	else
    	{	// loading code
    		ar>>m_bCheckState;
    	}
    }
    et voici le code de la methode appelante, celle ci est appel�e dans OnInitDialog:
    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
    23
    24
    25
    26
    void CtestDlg::LoadParams()
    {
    	//chargement des parametres a partir du fichier des parametres
    	CFile fileParams;
    	CFileException ex;
    	CString strParamFile="test.ini";
    	if(!fileParams.Open(strParamFile,CFile::modeRead, &ex))
    	{
    		if(!fileParams.Open(strParamFile,CFile::modeCreate|CFile::modeWrite))
    			MessageBox("Erreur d'ouverture du fichier de paramètres");
    		//données par défaut
    		m_bCheckState=FALSE;
    		CArchive archive(&fileParams, CArchive::store);
    		Serialize(archive);
    		archive.Close();
    	}
    	else //fichier ouvert en lecture
    	{
    		CArchive archiveParams(&fileParams,CArchive::load);
    		Serialize(archiveParams);
    		archiveParams.Close();
    	}
    	fileParams.Close();
    	//mise a jour des parametres lus dans la serialisation
    	UpdateData(FALSE);
    }
    Merci davance

  6. #6
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    D�sol� pour ce tr�s long d�lai.
    Votre code d'exemple utilise un chemin relatif au working directory.
    Rien ne garantit que le Working Directory soit le m�me entre chaque d�marrage.
    Si vous voulez utilisez un chemin relatif � votre exe, utilisez "GetModuleFileName" et "SetCurrentDirectory"
    http://msdn.microsoft.com/en-us/libr...97(VS.85).aspx
    http://msdn.microsoft.com/en-us/libr...30(VS.85).aspx

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me de d�-s�rialisation d'entit� avec rake
    Par supergeoffrey dans le forum Ruby
    R�ponses: 1
    Dernier message: 22/08/2012, 11h46
  2. Probl�me avec S�rialisation des tableaux de Axis 1.4
    Par khoufouq dans le forum Services Web
    R�ponses: 1
    Dernier message: 26/07/2012, 09h29
  3. probl�me avec la s�rialisation
    Par momjunior dans le forum AWT/Swing
    R�ponses: 12
    Dernier message: 30/11/2009, 14h21
  4. Probl�me avec la m�moire virtuelle
    Par Anonymous dans le forum CORBA
    R�ponses: 13
    Dernier message: 16/04/2002, 16h10

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