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 :

CArray RemoveAll plante mon appli


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 38
    Points
    38
    Par défaut CArray RemoveAll plante mon appli
    Bonjour,

    Mon programme appel plusieurs fois une méthode qui rempli un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CArray<CStrin,CString> Tab_Mess_Bit
    Cette fonction commence par supprimer tous les éléments avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tab_Mess_Bit.RemoveAll();
    puis le rempli.
    Lors du 1er appel de cette fonction, il n'y a pas de problème (donc quand mon CArray est vide), par contre lors du deuxièmes appel ça plante... donc quand mon CArray a déjà été rempli.

    Voici la méthode complète:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void CSpyDlg::GetTab16bits(const int& indiceMessage)
    {
    	//Tableau récupérant tous les 16 bits du message en question
    	Tab_Mess_Bit.RemoveAll();
    	int i = Pos_Message[indiceMessage];
     
    	for(; i<Pos_Message[indiceMessage + 1]; i++)
    	{
    		Tab_Mess_Bit.Add(m_oMessage[i]);
    	}
    }
    Et elle est appelée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void CSpyDlg::ReadMsg(const int& indiceMessage)
    {
    [...]
    GetTab16bits(IOClass* io);
    }
    Si vous avez des idées ??
    Merci pour votre aide !!

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    ça m'étonnerait fort que le problème vienne du CArray la vérité est ailleurs...
    je pense plutôt à Pos_Message , ou m_oMessage avec un problème d'indicage..
    le mode trace debug devrait donner plus de renseignement.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Salut
    Voici la call stack qui apparait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    NTDLL! 7c911230()
    _CrtDbgReport(int 2, const char * 0x00477a44 _szAfxTempl, int 307, const char * 0x00000000, const char * 0x00000000) line 353
    AfxAssertFailedLine(const char * 0x00477a44 _szAfxTempl, int 307) line 39 + 20 bytes
    AfxAssertValidObject(const CObject * 0x0012fa94 {CObject}, const char * 0x00477a44 _szAfxTempl, int 307) line 95 + 13 bytes
    CArray<CString,CString>::SetSize(int 0, int -1) line 308
    CArray<CString,CString>::RemoveAll() line 251 + 41 bytes
    CSpyDlg::GetTab16bits(const int & 0) line 1120
    CSpyDlg::ReadMsg(IOClass * 0x075340b0) line 2742
    je sais pas si ça peut aider à trouver d'où peut provenir le problème...
    Je n'ai pas vu de problème d'indicage...

    Merci pour ton aide !!!

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    de toute façon ce genre de problème ne peut pas venir d'une utilisation aussi simple de la CArray ça se saurait...
    il semble plus évident que tu corrompes la mémoire avant l'utilisation du Carray.
    par exemple un débordement mémoire qui irait justement taper sur le CArray.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    ah ok, je vais regarder de ce côté alors!

    le message d'assert est le suivant : "ASSERT_VALID fails with illegal vtable pointer"

    tu dois avoir raison, je dois faire une dépassement mémoire avant et écrire la dedans et quand il essaie de l'utiliser, bah c'est corrompu...

    merci

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    avec ce genre de message c'est sûr que ça vient de la ...

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

Discussions similaires

  1. Conversion float/string plante mon appli
    Par chido dans le forum Android
    Réponses: 1
    Dernier message: 23/01/2015, 01h16
  2. [WD17] ReadDirectoryChangesW qui plante mon appli
    Par chapeau_melon dans le forum WinDev
    Réponses: 1
    Dernier message: 09/11/2012, 18h01
  3. xmlDocPtr plante mon appli
    Par lrgtk dans le forum C
    Réponses: 5
    Dernier message: 14/01/2010, 17h43
  4. pourquoi ma boucle fait planté mon appli ?
    Par zerros dans le forum Windows Forms
    Réponses: 5
    Dernier message: 02/05/2009, 16h21
  5. delete[] plante mon appli !
    Par Dauphin dans le forum C++Builder
    Réponses: 8
    Dernier message: 10/12/2005, 20h52

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