Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: wxWidget EVENT_TABLE virhe

kayttaja-3842 [08.10.2010 02:37:02]

#

Terve kaikki,

Elikkäs minulla on outo ongelma wxWidgetin kanssa. Elikkäs kun määrittelen EVT_TABLEN saan seuraavanlaisen virhe ilmoituksen.

...minusta tuossa pitäisi kaikki olla ihan ok, mutta virhettä pukkaa?!?!? :O

main.cpp|22|error: expected constructor, destructor, or type conversion before 'wxEND_EVENT_TABLE'|

main.cpp

#include "main.h"

 bool App::OnInit(){

   frame = new MyFrame( NULL, -1, wxT("FrameTitle") );
   SetTopWindow( frame );
   frame->Show( true );

  return true;
 }



 MyFrame::MyFrame( wxWindow *parent, wxWindowID id, const wxString &title )
           : wxFrame( parent, id, title ) {

 }


 wxBEGIN_EVENT_TABLE( MyFrame, wxFrame )
 wxEND_EVENT_TABLE()

main.h

 #include <wx/wx.h>

  class MyFrame : public wxFrame{

   public:
    MyFrame( wxWindow *parent,
               wxWindowID id,
               const wxString &title );

   private:
    DECLARE_EVENT_TABLE()

  };

  class App : public wxApp{

    public:
     bool OnInit();

    private:
     MyFrame *frame;

  };

IMPLEMENT_APP( App )

Torgo [08.10.2010 14:44:01]

#

Yhtään mitään wxwidgeteistä tietämättä heitän villin veikkauksen, että event table ei saa olla tyhjä. Kokeile lisätä sinne joku event.

Entä mitä tuo IMPLEMENT_APP tekee? Pitäisikö taulukko olla määritetty ennen sitä?

Metabolix [08.10.2010 15:35:30]

#

Ainakin IMPLEMENT_APP on väärässä paikassa; otsikossa saisi olla vain esittely (DECLARE_APP). Tämä ei kuitenkaan voi olla tuon virheen syynä.

kayttaja-3842 [08.10.2010 15:59:05]

#

Kokeiltu on kaikki nuo ehdotukset. IMPLEMENT_APP on minulla ollut main.cpp ja olen kokeillut laittaa EVENT_TABLEEN eventin mutta ei auta mitää sama virhettä pukkaa...

Edit1:

..virhe löytyi!

Elikkäs olin ajatuksissani kirjoittanu BEGIN_EVENT_TABLE ja END_EVENT_TABLEN eteen "wx".

..kiitos kuitenki avausta.

Metabolix [08.10.2010 16:53:07]

#

Heh, olisipa pitänyt huomata: virheilmoitus tosiaan tulee kääntäjältä eikä esikääntäjältä, joten sanan wxEND_EVENT_TABLE esiintyminen ilmoituksessa kertoo, että makroa ei ole käsitelty. Jännittävää sinänsä, että väärä muoto esiintyy myös wxWidgetsin dokumentaatiossa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta