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 du programme


Sujet :

MFC

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut plantage du programme
    Bonjour, je fais un projet sous VC++ 2003 et mon programme plante complétement.

    voici le code du switch ou l'erreur se produit.
    iTap est une combobox est en fonction de sa valeur je veux grisé une deuxieme combobox (IDC_TYPE_HEAD). Les deux combobox appartienne à des classes différentes.
    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
     
    	switch (nID)
    	{
    		case IDC_TAP_INT:
    		    cData.iTap[INTERNAL] = m_tap[INTERNAL].GetCurSel();
    			if(cData.iTap[INTERNAL] == 1 || cData.iTap[INTERNAL] == 3 ||cData.iTap[INTERNAL] == 4 )
    			{
    				cData.fastenerType[ringType[CURR]][noType] = HEAD_ECROU;
    				GetDlgItem(IDC_TYPE_HEAD)->EnableWindow(true);
    			}
                                           //erreur
    			break;
                                          case IDC_TAP_EXT:
    			cData.iTap[EXTERNAL] = m_tap[EXTERNAL].GetCurSel();
    			break;
    	}
    mon code est bon mais a la fin du break j'ai lerreur suivante en faisant le débogage :

    Exception non gérée à 0x7c239eea (mfc71d.dll) dans Pearl.exe:0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x00000020.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 91
    Par défaut
    il faudrait verifier que tu ne pointe pas en dehors d'une variable (chaine trop courte, tableau trop petit...)

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    Il n'y a pas de raison car je ne touche pas au format des données. Je ne fais que de l'affectation et je l'ai déjà utilisé ailleurs et ça marchait très bien.

  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
    salut,
    que veux tu que l'on réponde d'autre sur ce type de code ?
    tu as forcement un indice erroné.
    le debugger est ton ami.

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    Je sais que c'est trop demandé mais je prend toutes les remarques pour vérifier. Je pense pas avoir tout vérifier et le projet étant très conséquent je ne peux pas mettre tout le code. (40 .cpp 36.h) je vais faire autrement pour le moment je verrai plus tard. Merci quand meme.

  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
    Citation Envoyé par Elessar01 Voir le message
    Je sais que c'est trop demandé mais je prend toutes les remarques pour vérifier. Je pense pas avoir tout vérifier et le projet étant très conséquent je ne peux pas mettre tout le code. (40 .cpp 36.h) je vais faire autrement pour le moment je verrai plus tard. Merci quand meme.
    ça n'a rien a voir ,
    tu montres du code sans nous indiquer la ligne causant le problème.
    que doit on faire avec ça ? , on est pas devin .
    la seule chose que l'on peut dire ,c'est la remarque faite par kinhelios et moi même...

  7. #7
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    J'ai marqué que le programme planté en arrivant au break; du premier case.
    J'en ai parlé avec d'autres personnes donc il m'arrive aussi d'oublier des éléments au fur et à mesure.
    Ne m'en veux pas ce projet me rends un peu à cran surtout que je dois le terminer pour la semaine prochaine.

  8. #8
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    ce n'est pas un débordement de tableau, puisque le prog essaye de lire l'adresse 0x00000020 ; ça correspond plutot à un pointeur NULL

    j'opterais pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GetDlgItem(IDC_TYPE_HEAD)
    qui renvoit NULL ; c'est le seul endroit ou ça peut planter comme ça ...

    @+

  9. #9
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    OK stephdim, au moins je sais d'où ça vient. J'ai jamais été très bon en allocation dynamique les chaines et tous ça.
    IDC_TYPE_HEAD est une combobox qui appartient à une autre classe.
    Est-il possible que je veuille l'utiliser alors qu'elle n'as peut-etre pas encore été initialisé? Ce qui provoquerai cette erreur.

    PS : Celui qui a commencé à coder ce projet code comme un singouin.

Discussions similaires

  1. Plantage du programme lorsque je déplace la fenêtre
    Par laurencew dans le forum OpenGL
    Réponses: 6
    Dernier message: 25/11/2010, 19h41
  2. id3lib - ID3_Tag - Plantage de programme
    Par dragonjoker59 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 07/01/2009, 18h49
  3. Réponses: 12
    Dernier message: 11/05/2008, 21h27
  4. Plantage de programme : avez-vous une explication ?
    Par tlpwd dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 30/01/2007, 14h10
  5. Réponses: 2
    Dernier message: 05/06/2006, 16h53

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