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

wxWidgets Discussion :

plantage lors de la lecture 0x00000


Sujet :

wxWidgets

  1. #1
    Acropole
    Invité(e)
    Par défaut plantage lors de la lecture 0x00000
    Bonjour,

    J'essaye de faire une application MDI en partant du sample fourni avec wxWidgets mais j'ai un plantage lors de l'exécution, apparemment a cause du menu :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    void cMainFrame::Init(){
        wxMenuBar *menu_bar = new wxMenuBar();
    //// Make a menubar
        wxMenu *file_menu = new wxMenu();
     
        file_menu->Append(wxID_NEW, _T("&New...\tCtrl-N"));
    //        file_menu->Append(wxID_OPEN, _T("&Open...\tCtrl-X"));
     
            file_menu->AppendSeparator();
            file_menu->Append(wxID_EXIT, _T("E&xit\tAlt-X"));
     
            menu_bar->Append(file_menu, _T("&File"));
            // A nice touch: a history of files visited. Use this menu.
    //        m_docManager->FileHistoryUseMenu(file_menu);
    /*
     
     
        wxMenu *edit_menu = (wxMenu *) NULL;
            if (edit_menu)
                menu_bar->Append(edit_menu, _T("&Edit"));
     
        wxMenu *help_menu = new wxMenu();
            help_menu->Append(wxID_ABOUT, _T("&About\tF1"));
            menu_bar->Append(help_menu, _T("&Help"));
     
    #ifdef __WXMAC__
      wxMenuBar::MacSetCommonMenuBar(menu_bar);
    #endif //def __WXMAC__
      //// Associate the menu bar with the frame
    */
        SetMenuBar(menu_bar);
    }

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Le code que tu proposes ne m'a pas l'air de provoquer une erreur d'adressage ... sauf si this = 0. Comment appelles-tu cMainFrame::Init ?

  3. #3
    Acropole
    Invité(e)
    Par défaut
    Je l'utilise là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    bool cApplication::OnInit(void){
        m_docManager = new wxDocManager;
     
        //// Create a template relating drawing documents to their views
        (void) new wxDocTemplate((wxDocManager *) m_docManager, _T("Drawing"), _T("*.drw"), _T(""), _T("drw"), _T("Drawing Doc"), _T("Drawing View"),
            CLASSINFO(cDocEnvironnement), CLASSINFO(cViewEnvironnement));
     
        frame = new cMainFrame((wxDocManager *) m_docManager, (wxFrame *) NULL,
                      _T("DocView Demo"), wxPoint(0, 0), wxSize(800, 600),
                      wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE);
     
        frame->Init();

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    J'avoue que je ne vois pas. Le problème doit venir d'ailleurs. J'ai repris le code exemple, j'ai injecté ta fonction init et ça marche très bien
    Peux-tu montrer ta définition de cMainFrame en entier (.h et .cpp) ?

  5. #5
    Acropole
    Invité(e)
    Par défaut
    J'ai trouvé. Dans le constructeur de cMainFrame je n'initialisais pas celui de wxDocMDIParentFrame :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cMainFrame::cMainFrame(wxDocManager *manager, wxFrame *frame, const wxString& title, 
                           const wxPoint& pos, const wxSize& size, long type):
                    wxDocMDIParentFrame(manager,frame,0,title, pos, size,type)
    {
    }

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Arf ! J'ai pas regardé mais je présume que dans SetMenuBar il doit aller chercher le handle de la fenêtre. Et si tu n'as pas appelé le constructeur de la classe mère, il a pris le constructeur par défaut qui ne créé pas la fenêtre. D'où le boum

Discussions similaires

  1. Problème lors de la lecture d'un fichier avec Input...
    Par Kronoob dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 18/11/2005, 18h55
  2. Probleme de BIP lors de la lecture d'un fichier
    Par GroRelou dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 21/09/2005, 10h12
  3. [socket] Bloqué lors de la lecture
    Par oiffrig dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 01/04/2005, 10h04
  4. Réponses: 14
    Dernier message: 30/03/2005, 21h50
  5. plantage lors de réception de fihier
    Par marsupile dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/01/2004, 18h08

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