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 :

Un probleme de Type Access Violation


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Un probleme de Type Access Violation
    Salut!
    J'utiliste une CList dans mon programme;le probleme que je veux utilise cette liste plusieurs fois;alors avant chaque utilisation je dois reinitilaiser ma liste donc supprimer tous ses elements ce qui entraine une exception de type Access Violation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CList<RWCString, RWCString> m_CLDriver;[/quote]
    c'est la declaration de ma liste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	while (!m_CLDriver.IsEmpty())
    	     m_CLDriver.RemoveHead();
    c'est la ou l'exception est declenchée!
    Merci pour votre aide

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut euh
    déjà, est ce que ta CList est utilisée par plusieurs thread?

    Sinon, je te conseille d'essayer un RemoveAll(), tu n'as pas besoin de vérifier si ta liste est vide avec...

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse;
    Nom ma liste est utilisée par un seul thread et la meme exception s'est declenchée avec RemoveAll().

  4. #4
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Bonjour,
    Avant d'accéder à ses méthodes, teste que ton Clist n'est pas à NULL.

    Si c'est le cas, trace en pas à pas pour comprendre où ta Clist est détruite.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Salut;
    J'ai fait un debug et j'ai remarque que l'exception est declenchée pourtant la liste contient encore des elements j'ai doute que la taille de la liste peut influer car ma liste contient un tres grand nombre d'elements!
    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
    salut,
    l'erreur doit venir de l'implementation de ton type de donné RWCString
    de plus il est preferable de declarer ta liste comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CList<RWCString, RWCString &> m_CLDriver;
    si c'est toujours pas bon il faut nous montrer le code d'assertion d'erreur .
    mon ton probleme est specifique MFC ,et devrait figurer dans le forum VC ,


  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci farscape je suis desole de poster cette question au niveau de forum c++ au lieu de forum VC;meme avec la declaration suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CList<RWCString, RWCString &> m_CLDriver;
    tjrs la meme exception!
    Pour le code d'assertion d'erreur c'etait au niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	while (!m_CLDriver.IsEmpty())
    	m_CLDriver.RemoveHead();
    Merci!

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    mais l'exception en elle meme ?
    a quoi correspond le type RWCString ?

  9. #9
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    le RWCString c presque le meme type que CString mais avec encore des methodes specifiques!
    merci

  10. #10
    mat.M
    Invité(e)
    Par défaut
    Attention : avec RemoveHead il faut avoir appelé auparavant AddHead !


    Et non AddTail ! ( je suis sûr c'est ce que tu as fait )

  11. #11
    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
    Citation Envoyé par mat.M
    Attention : avec RemoveHead il faut avoir appelé auparavant AddHead !


    Et non AddTail ! ( je suis sûr c'est ce que tu as fait )
    Désolé mais inexact !
    la preuve par l'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // Define myList.
    	CList<CString,CString&> myList;
     
    	// Add two elements to the list.
    	myList.AddTail(CString("ABC"));
    	myList.AddTail(CString("123"));
     
    	// Remove the head element and verify the list.
    	// NOTE: once the head is removed, the number of
    	// elements in the list will be one.
    	CString strHead = myList.RemoveHead();
     
    	ASSERT((CString("ABC") == strHead) && (myList.GetCount() == 1) && (CString("123") == myList.GetHead()));

  12. #12
    mat.M
    Invité(e)
    Par défaut
    Effectivement c'est inexact

    D'ailleurs dans mes projets où j'utilise CObList j'utilise AddHead et RemoveTail

Discussions similaires

  1. probleme fortran 90 exception:access violation
    Par rijks dans le forum Fortran
    Réponses: 2
    Dernier message: 25/10/2010, 15h14
  2. Probleme de Type de champs dans une table access
    Par dimis dans le forum Modélisation
    Réponses: 3
    Dernier message: 23/07/2009, 10h15
  3. Probleme Access violation at 0x
    Par bouzaidi dans le forum Delphi
    Réponses: 11
    Dernier message: 13/04/2007, 10h46
  4. probleme insertion donnée access
    Par nashouille dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/01/2004, 14h45
  5. Réponses: 3
    Dernier message: 22/05/2002, 09h37

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