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 :

plantage en release


Sujet :

MFC

  1. #21
    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
    Bonjour à tous,

    je n'ai toujours pas trouvé la solution à mon problème.
    Comme je l'expliquais plus haut, mon appli plante à l'appel de la fonction UpdateDialogControls. Le code de cette fonction est dans WINCORE.cpp.
    Question: pourquoi les points d'arrêt que je met dans cette fonction ne marchent pas quand je suis en release? (car il n'y a qu'en release que mon appli plante). Et comment faire pour débugger ça?

    merci à vous tous

  2. #22
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    Ca marche pas en release car le "programme" n'est pas compilé avec les infos pour debugger notamment les break points

    enfin je crois

  3. #23
    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,
    cette fonction est appelée pour la mise à jour des éléments de l'interface ,je ne pense pas que soit elle qui cause un problème.[FONT=Arial][/FONT]
    la verité est ailleurs (peut etre dans le kebab )

    tu ne fais pas de Maj sur des objets MFC à partir d'un thread de travail par hasard ?

  4. #24
    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
    cette fonction est appelée pour la mise à jour des éléments de l'interface ,je ne pense pas que soit elle qui cause un problème.
    Ce n'est certainement pas la cause du problème, mais c'est dans cette fonction que le problème fait tout planter. En effet, j'ai un UpdateDialogControls à la fin du DoDataExchange() de la dialogbar de ma fenêtre. Si j'enlève l'appel à UpdateDialogControls, la fenêtre a le temps de s'afficher et puis ça plante. Si je le laisse, elle n'a même pas le temps de s'afficher.

    Citation Envoyé par farscape
    tu ne fais pas de Maj sur des objets MFC à partir d'un thread de travail par hasard ?
    Non, je ne penses pas. La partie de l'appli sur laquelle je travaille n'utilise qu'un seul thread, et je n'en créé pas de nouveau.

    Citation Envoyé par farscape
    la verité est ailleurs (peut etre dans le kebab )
    Erf, je crois qu'en travaillant dans un kebab, je ferais encore plus de dégats qu'en étant développeur

    Quelques précisions supplémentaires:
    - j'ai créé une frame qui hérite de CPersistentMDIChildWnd
    - dans cette frame, j'ai une dialogbar et une boite de dialogue. Chacun ayant une ressource propre (une ressource pour la dialogbar + une ressource pour la boite de dialogue)

  5. #25
    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
    on peut savoir pourquoi tu utilises : UpdateDialogControls ?

  6. #26
    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
    Pour créer la fenêtre sur laquelle je travaille, j'ai récupéré le code d'une autre fenêtre de l'application qui lui ressemblait beaucoup. Et il y a ce UpdateDialogControls.
    Mais comme tu le dis, le problème n'est pas là, puisque si je l'enlève ça plante quand même.

  7. #27
    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
    Ha j'oubliais. Le truc c'est que ma fenêtre utilise des ON_UPDATE_COMMAND_UI dans le DoDataExchange. Je ne sais pas exactement à quoi cela sert, mais cela concerne des controles un peu particuliers. Et il semble que le UpdateDialogControls doive être utilisé dans ce cas là.

  8. #28
    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
    Ha intéressant: pour tester, j'ai mis en commentaire le contenu du MESSAGE_MAP. Et bien ça plante plus. Le problème viens donc de là, je vous met le code, comme ça, si vous voyez quelque chose de pas très catholique, vous pourrez me dire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    BEGIN_MESSAGE_MAP(MaDialogBar, BaseClass/*=CWSDialogBar*/)
            ON_WM_CREATE            ()
            ON_MESSAGE                (WM_INITDIALOG,                    HandleInitDialog)
            ON_COMMAND                (IDC_BILANEXEC_USEDATE,            OnUseDate)
            ON_UPDATE_COMMAND_UI    (IDC_BILANEXEC_USEDATE,            OnUpdateDateButton)
            ON_UPDATE_COMMAND_UI    (IDC_COMBO_BILANEXEC_SINCE,        OnUpdateDateCtrl)
            ON_NOTIFY                (DTN_DATETIMECHANGE,            IDC_BILANEXEC_USEDATE, OnDateChange)    // the date time ctrl capture the enter key, so we must handle the change
            ON_CBN_SELCHANGE        (IDC_COMBO_BILANEXEC_PLACENEGO,    OnSelchangePlace)
     
            ON_BN_CLICKED            (IDC_BE_VALID,                    OnOK)
            ON_UPDATE_COMMAND_UI    (IDC_COMBO_BILANEXEC_VALUE,        OnSelChangeValue)
    END_MESSAGE_MAP()

  9. #29
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Salut,

    Quand plus haut je te demandais s'il y avait des différences notables entre tes environnements, c'est parce que selon mon expérience, qui est plus orientée sur des architectures distribuées, les principaux problèmes se trouvent à ce niveau là.

    Je ne connais pas bien VC++ 6, donc je ne peux pas te dire dans ce cas précis quelles pourraient être les erreurs; mais as-tu par exemple choisi une optimisation de compilation particulière ? L'import de librairie est-il bien fait ? Utilises-tu des optimisations pour une architecture particulière ? Je parlais d'encoding car il y a peut-être un settings à ce niveau là aussi ? Je ne sais pas trop, je ne fais qu'essayer de donner une piste, désolé de ne pas être plus précis manque de connaissance de ton environnement A+

  10. #30
    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
    la ligne :
    ON_MESSAGE (WM_INITDIALOG, HandleInitDialog)
    me choque un peu ..,qu'est ce que ça fait la ?
    tu ne peux pas utiliser OnInitDialog ?

  11. #31
    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
    Bon, j'ai trouvé... et pour une fois, l'erreur de vient pas de moi.
    En fait, le problème provient d'un des contrôles que j'utilise dans ma dialogbar et qui est foir... mal implémenté. 2 jours de perdus...

    Sinon, la ligne ON_MESSAGE (WM_INITDIALOG, HandleInitDialog) je l'utilise parce que les autres fenêtres de l'appli l'utilisent et que je voudrais que mon code ressemble le plus possible au reste du projet. Mais je pourrais (et j'aurais préféré) utiliser le simple OnInitDialog.

    Enfin, en ce qui concerne les différentes configs, ça je n'y touche pas. Le projet est trop énorme.

    Bon bah merci à tous, c'était vraiment sympa de m'aider à me dépatouiller de cette embrouille. Vraiment merci!



    [edit] Ho, le bouton "resolu" est revenu!! [edit]

  12. #32
    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
    comme quoi mulder avait raison

  13. #33
    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
    lol. D'autant plus que j'ai bien l'impression que les gens qui ont programmé le contrôle en question ne sont pas du même univers que nous... (enfin, que moi, on sait jamais. Farscape, avec un nom comme ça, qui sait d'où tu peux venir )

  14. #34
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    si on était dans X-Files, le problème serait resté un mystère

    Bravo en tout cas et bonne continuation

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [VS2005] Plantage Release / Debug
    Par Nico28 dans le forum Visual Studio
    Réponses: 8
    Dernier message: 10/07/2008, 10h50
  2. Plantage avec AfxGetResourceHandle uniquement en Release
    Par cathar_rhythm dans le forum Windows
    Réponses: 1
    Dernier message: 28/04/2008, 18h05
  3. Plantage de la version Release sous .NET
    Par mastergoddot dans le forum Visual C++
    Réponses: 4
    Dernier message: 22/05/2007, 15h46
  4. [MFC] Plantage postmessage en release
    Par Hepm dans le forum MFC
    Réponses: 16
    Dernier message: 27/05/2006, 11h55
  5. Réponses: 11
    Dernier message: 20/03/2006, 14h42

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