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 :

erreur : unhandled exception 0xC0000005 access violation


Sujet :

MFC

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut erreur : unhandled exception 0xC0000005 access violation
    Bonjour à tous les developpeurs,
    en fait mon probleme est le suivant :
    je crée un group box statiquement dans une fenètre, est ensuite je dois y inserer des bouttons dynamiquement.

    mon code qui fait buguer mon programme est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    constructeur::constructeur(Frame_ID)
    {
    CRect Frame_Rect;
    
    CWnd *wnd = GetDlgItem(Frame_ID);
    wnd->GetWindowRect(Frame_Rect); 
    ......
    }
    aprés avoir fait du pas à pas je me suis rendu compte que la source de l'erreur vient de la ligne en gras et la valeur de wnd aprés l'execution de cette ligne de code est :
    this | {CWnd hWnd = ???}
    et
    m_hWnd | CXX0030 Error : expression cannot be evaluated

    ensuite quand je continue l'execution de mon application j'ai la pop_up qui apparrait et qui contient le message suivant :

    unhandled exception in mobile.exe 0xC0000005 access violation

    svp si vous avez une idée sur la source de cette erreur n'hesitez pas à me repondre.

    Merci beaucoup.

  2. #2
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Bonjour,

    Il s'agit de quel constructeur ?
    Je ne comprends pas trop où intervient ce bout de code, mais en général on n'utilise pas la méthode GetDlgItem dans un constructeur, vu que la méthode DoDataExchange n'a pas encore fait son travail... Cf. la FAQ pour plus de détails sur DoDataExchange.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut unhandled exception : access violation
    Merci pour ta reponse,

    en fait il s'agit du constructeur d'une class que j'ai developpez et qui a pour fonctionnalités principale la gestion de la création des bouttons dans ce gadre statique.dans ce constructeur j'appel la methode GetDlgItem(Frame_ID), avec Frame_ID qui correspond à l'identifiant du cadre statique.

    cette méthode dois me retourner un pointeur de type CWnd de l'objet "cadre statique", et j'appel ensuite la fonction GetWindowRect(Rect1) pour recuperer les coordonnées du cadre.

    Merci

  4. #4
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Il ne s'agit pas du constructeur de la fenêtre qui contient le cadre ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut unhandled exeption
    Merci j'ai trouver la source du problem

    en fait il faut que j'associe à la fonction GetDlgItem le pointeur Cwnd* du dialog dans le quel je veux afficher les boutons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CWnd wnd = MyDialog->GetDlgItem(ID_Frame)
    //ID_Frame : c'est l'Identifiant du cadre dans MyDialog.
    Merci beaucoup,

  6. #6
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Ah oui, effectivement...

    Sinon, il faut penser à utiliser les balises CODE (#), et à cliquer sur le bouton quand une solution a été trouvée.

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut bouttons dynamiques dans un cadre statique
    bonjour
    bonjour j'ai eu un nouveau problème majeur.
    j'appelle la fonction qui créer le boutton 4 fois.
    et je vois que le dernier boutton qui apparait sur ma fenètre.
    es que vous savez pourquoi?
    Merci,

  8. #8
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Peut-être parce que les 4 boutons sont superposés ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut Bouttons dynamic dans un cadre static
    Non je crois pas, j'ai verifié les coordonnées et les id de chaque boutton, mais j'ai toujours le dernier boutton qui s'affiche au dernier endroit.
    Je pense que c'est un problème d'affichage.

    .....

  10. #10
    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
    on peut voir du code ? je m'exerce à la clairvoyance ... mais c'est pas encore ça

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut probleme d'affichage de bouttons dans un cadre static
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CButton* radio = new CButton; 
     
    radio->Create(Button_Name,WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON, Cordinates, wnd, Button_ID);
    radio->Create(Button_Name, WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON, Cordinates, wnd, Button_ID);
    radio->Create(Button_Name, WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON, Cordinates, wnd, Button_ID);
    radio->Create(Button_Name, WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON, Cordinates, wnd, Button_ID);
    cordinates : c'est les coordonnées des bouttons qui sont calculées a partir de la position du cadre.

    je recupère la position du cadre grace au programme suivant dans la structure Frame_Rect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CRect Frame_Rect = NULL;
    Frame_Rect = new CRect;
    IParentDialog = new CWnd;
    wnd = IParentDialog->GetDlgItem(Frame_ID);
    wnd->GetWindowRect(Frame_Rect);
    Merci...

    EDIT par PetitPapaNoël : Merci d'utiliser les balises CODE (bouton #) pour une meilleure lisibilité...

  12. #12
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    A mon avis, il faudrait utiliser 4 pointeurs au lieu d'un seul. De plus, il faudrait que ces pointeurs soient déclarés comme membres de ta classe de boîte de dialogue, de façon à pouvoir effectuer leur destruction correctement...

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    en fait j'ai besoin de creer un seul pointeur qui est utilisé dans ma class pour recuperer à chaque fois les coordonnées du dernier bouttons crée pour calculer la position du suivant

  14. #14
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Donc le code que tu as donné plus hait est incomplet, c'est ça ?

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/05/2009, 14h07
  2. Réponses: 2
    Dernier message: 20/11/2007, 10h38
  3. Réponses: 18
    Dernier message: 09/10/2007, 10h20
  4. [0xC0000005: Access Violation.]
    Par ARachid dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 24/04/2007, 23h34
  5. Réponses: 2
    Dernier message: 16/11/2006, 17h09

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