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 :

[win32] conseil pour debugger (DoDataExchange)


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut [win32] conseil pour debugger (DoDataExchange)
    Bonjour à tous,

    j'ai un problème sur mon appli, un projet win32 (pas de classwizzard) et visual6 ( ) . Elle plante dans la méthode DoDataExchange, sur un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DDX_Control(pDX, IDC_STATIC1, m_strText1);
    Et je ne sais vraiment pas comment débugger ça. Mon IDC_STATIC1 est bien défini, tout semble aller pour le mieux, et j'obtiens un "unhandled exception". Si je met un point d'arrêt et que je fais F11, j'arrive dans du code assembleur

    Auriez-vous quelques conseils à me donner?

  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
    je dirais comme ça que dans ta fenetre il n'y a pas de IDC_STATIC1


  3. #3
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Argh, mais tu me prends pour un noob!! (non mais c'est clair que c'est le genre d'erreur que je fais souvent )
    Sisi, il y est ce satané CStatic avec son identificateur. Bon, ce n'est pas IDC_STATIC1, mais je t'assure qu'il y est et que le nom est identique (c'est un copier/coller et j'ai vérifié 50 fois).

  4. #4
    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
    non loin de moi cette idée ,
    pourquoi tu precises :un projet win32 (pas de classwizzard)
    c'est un projet MFC classique non ?
    si tu commentes la ligne en question ça passe le cap du dodataexchange ?
    si tu es en debug tu dois pouvoir dire la ligne de code precise ou il y a l'erreur .

  5. #5
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par farscape
    pourquoi tu precises :un projet win32 (pas de classwizzard)
    c'est un projet MFC classique non ?
    En fait, je ne sais pas trop. Cela ressemble à un projet MDI classique, mais le class wizzard ne fonctionne pas et le cp m'a formellement "conseillé" de ne pas essayer de m'en servir. Donc le DoDataExchange a été codé "à la main".
    Citation Envoyé par farscape
    si tu commentes la ligne en question ça passe le cap du dodataexchange ?
    Oui, ça passe. Mais bien évidemment, ça plante après, puisqu'il manque le lien.

    Citation Envoyé par farscape
    psi tu es en debug tu dois pouvoir dire la ligne de code precise ou il y a l'erreur .
    Et bien comme je disais, si je fais F11 à partir de cette ligne, visual m'envoie dans l'assembly ^^

  6. #6
    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
    alors je ne vois que les cas suivants :
    - le libellé IDC_STATIC1 ne correspond pas au controle sur la fenetre.
    - le controle sur la fenetre n'est pas encore créé au moment du dodataexchange.
    ce qui peut etre le cas si le controle est dynamique ...

  7. #7
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Pourtant le pointeur est bon.
    Sinon, je viens de comprendre quelques trucs sur ce projets:
    - J'ai 2 boites de dialogues. 1 en français + 1 en anglais. Elles portent le même ID, les mêmes contrôles. Et les contrôles ont également les mêmes IDs.
    - Chacune des boites de dialogue est compilée dans un projet "à part" (mais qui appartient à la solution). Cela donne une dll. guiF_D.dll pour celle qui est en français, et guiE_D.dll pour celle qui est en anglais (D c'est pour debug).
    - Du coup, j'ai recompilée ces 2 dll, mais j'ai toujours la même erreur.

    Je continue à chercher...

    (merci farscape )

  8. #8
    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
    alors il y a forcemment un chisme avec le libellé IDC_STATIC1 ,le libellé est peut etre correcte mais sa valeur ne correspond au controle sur l'ecran...
    tu pourrais faire un petite boucle pour chercher tous les ctrl de ta fenetre pour trouver les differents ID.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       CWnd *pCtrl=GetWindow(GW_CHILD);
       while(pCtrl)
       {
          TRACE("\nEdit:%d",pCtrl->GetDlgCtrlID( ));
          pCtrl = pCtrl->GetWindow(GW_HWNDNEXT);
       }
    a rajouter dans en premier dans dodataexchange juste pour voir ...

  9. #9
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut

    ahem... j'avais pas recompilé le bon projet... (j'ai une circonstance atténuante: ce projet est un vrai plat de spaghettis! )

    et encore farscape

  10. #10
    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
    Citation Envoyé par r0d

    ahem... j'avais pas recompilé le bon projet... (j'ai une circonstance atténuante: ce projet est un vrai plat de spaghettis! )

    et encore farscape
    petit noob va ! (juste pour rire)

  11. #11
    Membre éprouvé Avatar de GP77
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut
    J'suis peut etre une bille mais par hazard, m_strText, c'est du CString,non ? alors ce n'est pas DDX_Control mais DDX_text qu'i faut employer.
    Sinon remplacer CEdit pas CStatic...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/07/2003, 16h04
  2. Conseils pour developper une application avec Oracle
    Par belugha dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 02/06/2003, 16h03
  3. Cherche conseil pour choisir mon orientation.
    Par AslDice dans le forum Débuter
    Réponses: 6
    Dernier message: 24/04/2003, 17h07
  4. Conseils pour poser votre question...
    Par Community Management dans le forum XMLRAD
    Réponses: 0
    Dernier message: 30/01/2003, 16h58
  5. [web] Cherche un conseil pour un livre perl-tk
    Par Anonymous dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 29/04/2002, 15h35

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