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 :

Probleme avec GetDocument() ?


Sujet :

MFC

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Par défaut Probleme avec GetDocument() ?
    bonjour,
    J'ai parcouru la faq et le forum et donc pour recuperer mon edit j'en suis venu à faire le code ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CString s;
    CEdit *pEdit=static_cast<CEdit *>(GetDlgItem(IDC_TEMPS_JEU)) ;
    	pEdit->GetWindowText(s) ;
    Jusque la tout va bien. ensuite je souhaite recuperer cette valeur dans une variable qui se trouve dans mon document :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetDocument()->TitreExo = s;
    La compil passe nickel. Mais lorsque je clique sur mon bouton j'obtiens une belle erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unhandled exception at 0x78212967 (mfc80d.dll) in UTrain.exe: 0xC0000005: Access violation reading location 0x00000000.
    L'erreur vient surement du passage au document car si je met la derniere ligne de code en commentaire pas d'erreur à l'horizon.
    Je ne comprend pas ce qui se passe, ma variable TitreExo existe et est bien déclaré en CString..
    Merci

  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
    il n'est pas nécessaire de caster en CEdit pour faire un Set ou GetWindowText
    ces méthodes sont définies dans la classe CWnd (CEdit hérite de CWnd).
    pour l'erreur tu as la réponse , 0x00000 veut dire que GetDocument() renvoie NULL, d'ou l'erreur.
    le pourquoi : certainement une erreur de contexte comme l'appel d'un endroit non approprié .
    Exemple le constructeur de la vue.

  3. #3
    Invité de passage
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Par défaut
    Bonjour, je voudrais savoir comment aménager le code donné pour une classe CView (celle crée avec le projet MFC). je veux recuperer le contenu de la classe ds un buffer pour pouvoir le compresser par la suite, ms je n'arrive pas à le faire... Merci de m'aider au plus vite bye

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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