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 :

Problème avec les exceptions


Sujet :

wxWidgets

  1. #1
    Membre régulier Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Points : 109
    Points
    109
    Par défaut Problème avec les exceptions
    Salut, salut,

    j'ai un problème avec les exceptions en compilant avec VC++6 :
    - lorsque je compile sans gestion des exceptions (sans l'option /GX)
    l'éxécution se fait sans problème mais sans gestion des exceptions. (normal )

    - lorsque je compile avec la gestion des exceptions (avec l'option /GX)
    il crash lors de la création de la fenêtre, mais je ne vois pas du tout pourquoi

    voici une copie de la pile des appels au moment au il utilise un pointeur null :
    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
    wxAppConsole::CreateMessageOutput() line 260 + 9 bytes
    wxApp::Yield(unsigned char 152) line 711
    wxAppConsole::GetTraits() line 236 + 14 bytes
    wxGetOsVersion(int * 0x0012fa9c, int * 0x00000000) line 302 + 21 bytes
    wxCreateFontFromStockObject(int 17) line 232 + 17 bytes
    wxSystemSettingsNative::GetFont(wxSystemFont wxSYS_DEFAULT_GUI_FONT) line 279 + 13 bytes
    wxInitializeStockObjects() line 573 + 30 bytes
    wxAppBase::Initialize(int & 1, char * * 0x0147cf00) line 115
    wxApp::Initialize(int & 1, char * * 0x0147cf00) line 279 + 16 bytes
    wxEntryStart(int & 1, char * * 0x0147cf00) line 280 + 30 bytes
    wxEntryReal(int & 1, char * * 0x0147cf00) line 404 + 13 bytes
    wxEntry(int & 1, char * * 0x0147cf00) line 216 + 13 bytes
    wxEntry(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, HINSTANCE__ * 0x00000000, int 1) line 386 + 13 bytes
    WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00141f23, int 1) line 28 + 45 bytes
    WinMainCRTStartup() line 330 + 54 bytes
    KERNEL32! 7c816fd7()
    Si quelqu'un a une idée de ce que j'ai pu oublié.

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Peux tu nous montrer la partie de code incriminée ?

  3. #3
    Membre régulier Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Points : 109
    Points
    109
    Par défaut
    Le header contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class MyApp : public wxApp
    {
    public:
        virtual bool OnInit();
     
    	virtual bool OnExceptionInMainLoop();
    	virtual void HandleEvent(wxEvtHandler *handler, wxEventFunction func, wxEvent& event) const;
    };
    et l'implémentation :
    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
    34
    35
    36
    37
    38
    39
    40
     
     
    IMPLEMENT_APP( CS_App )
     
     
    bool MyApp::OnInit()
    {
        return true;
    }
     
     
     
     
     
    bool MyApp::OnExceptionInMainLoop()
    {
    	throw;
     
        // some compilers are too stupid to know that we never return after throw
    #if defined(__DMC__) || (defined(_MSC_VER) && _MSC_VER < 1200)
        return false;
    #endif
    }
     
     
     
    void MyApp::HandleEvent(wxEvtHandler *phandler_p, wxEventFunction func_p, wxEvent& event_p) const
    {
        try
        {   
            // simply call the handler
    		(phandler_p->*func_p)(event_p);
    	}
    	catch(...)
    	{
    		wxMessageBox(_("An error occured while handling an event."),
    			_("execption in event handling"), wxOK | wxICON_ERROR);
    		throw;
    	}
    }
    Voila, si quelqu'un a une idée...

  4. #4
    Membre régulier Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Points : 109
    Points
    109
    Par défaut
    Ca y est j'ai trouvé

    En fait, j'avais utilisé wxmsw(d).lib comme sugéré ici : http://wxwidgets.org/docs/technote/vc_ide.htm
    généré grâce à wxWindows.dsw

    mais il ne faut apparement pas utilisé ce projet (pourquoi est-t-il toujours là ? un piège ?)

    et donc en utlisant les fichiers .lib similaires généré grâce au projet wx.dsw (ie wxbase26.lib et wxmsw26_core.lib pour wxWidgets 2.6.x) tout se passe bien

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

Discussions similaires

  1. Problème avec les exceptions
    Par UmutFB dans le forum VB.NET
    Réponses: 5
    Dernier message: 05/08/2008, 16h40
  2. Réponses: 2
    Dernier message: 05/08/2008, 11h00
  3. Problème avec les Exceptions
    Par CORTEZ dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/05/2008, 10h06
  4. Problème avec les exceptions
    Par shenron666 dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 11/10/2006, 12h53
  5. probléme avec les exceptions
    Par sofiane44 dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2006, 16h30

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