Why I can't succeed compile for wxWidgets application .
-------------- Build: default in test ---------------
mingw32-g++.exe -pipe -mthreads -Winvalid-pch -include "wx_pch.h" -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -DUSE_PCH -IE:\TEST\test\include -IE:\TEST\test\lib\gcc_dll\mswu -IE:\TEST\test\contrib\include -I"C:\Program Files\CodeBlocks\include" -I"C:\Program Files\CodeBlocks\wxWidgetsDLL\include" -c wx_pch.h -o wx_pch.h.gch\default_wx_pch.h.gch
mingw32-g++.exe -pipe -mthreads -Winvalid-pch -include "wx_pch.h" -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -DUSE_PCH -IE:\TEST\test\include -IE:\TEST\test\lib\gcc_dll\mswu -IE:\TEST\test\contrib\include -I"C:\Program Files\CodeBlocks\include" -I"C:\Program Files\CodeBlocks\wxWidgetsDLL\include" -c main.cpp -o .objs\main.o
main.cpp:91:1: converting to execution character set: Illegal byte sequence
main.cpp:108:1: converting to execution character set: Illegal byte sequence
Process terminated with status 1 (0 minutes, 21 seconds)
2 errors, 0 warnings
my wxWidgets is compiled with unicode version.
main.cpp file:
#include <wx/wxprec.h>
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif
//helper functions
enum wxbuildinfoformat {
short_f, long_f };
wxString wxbuildinfo(wxbuildinfoformat format)
{
wxString wxbuild(wxVERSION_STRING);
if (format == long_f )
{
#if defined(__WXMSW__)
wxbuild << _T("-Windows");
#elif defined(__UNIX__)
wxbuild << _T("-Linux");
#endif
#if wxUSE_UNICODE
wxbuild << _T("-unicode build");
#else
wxbuild << _T("-ANSI build");
#endif // wxUSE_UNICODE
}
return wxbuild;
}
//wxWidgets Application
class MyApp : public wxApp
{
public:
virtual bool OnInit();
};
IMPLEMENT_APP(MyApp);
class MyFrame: public wxFrame
{
public:
MyFrame(wxFrame *frame, const wxString& title);
~MyFrame();
private:
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
DECLARE_EVENT_TABLE();
};
bool MyApp::OnInit()
{
MyFrame* frame = new MyFrame(0L, _("wxWidgets Application Template"));
frame->Show();
return true;
}
int idMenuQuit = wxNewId();
int idMenuAbout = wxNewId();
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(idMenuQuit, MyFrame::OnQuit)
EVT_MENU(idMenuAbout, MyFrame::OnAbout)
END_EVENT_TABLE()
MyFrame::MyFrame(wxFrame *frame, const wxString& title)
: wxFrame(frame, -1, title)
{
#if wxUSE_MENUS
// create a menu bar
wxMenuBar* mbar = new wxMenuBar();
wxMenu* fileMenu = new wxMenu(_T(""));
fileMenu->Append(idMenuQuit, _("&Quit\tAlt-F4"), _("Quit the application"));
mbar->Append(fileMenu, _("&File"));
wxMenu* helpMenu = new wxMenu(_T(""));
helpMenu->Append(idMenuAbout, _("&About\tF1"), _("Show info about this application"));
mbar->Append(helpMenu, _("&Help"));
SetMenuBar(mbar);
#endif // wxUSE_MENUS
#if wxUSE_STATUSBAR
// create a status bar with some information about the used wxWidgets version
CreateStatusBar(2);
SetStatusText(_("Hello Code::Blocks user !王光平"),0);
SetStatusText(wxbuildinfo(short_f),1);
#endif // wxUSE_STATUSBAR
}
MyFrame::~MyFrame()
{
}
void MyFrame::OnQuit(wxCommandEvent& event)
{
Close();
}
void MyFrame::OnAbout(wxCommandEvent& event)
{
wxString msg = wxbuildinfo(long_f);
wxMessageBox(msg, _("Welcome 王光平"));
}
wx_pch.h file:
#ifndef WX_PCH_H_INCLUDED
#define WX_PCH_H_INCLUDED
#if ( defined(USE_PCH) && !defined(WX_PRECOMP) )
#define WX_PRECOMP
#endif // USE_PCH
// basic wxWidgets headers
#include <wx/wxprec.h>
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif
#ifdef USE_PCH
// put here all your rarely-changing header files
#endif // USE_PCH
#endif // WX_PCH_H_INCLUDED