转自: http://stackoverflow.com/questions/208373/wxwidgets-how-to-initialize-wxapp-without-using-macros-and-without-entering-the
Just been through this myself with 2.8.10. The magic is this:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
// MyWxApp derives from wxApp
wxApp::SetInstance(new MyApp());
//or use wxEntryStart(argc , argv) in the console application
wxEntryStart(hInstance , hPrevInstance , lpCmdLine , nCmdShow);
wxTheApp->OnInit();
// you can create top level-windows here or in OnInit()
// do your testing here
wxTheApp->OnRun();
wxTheApp->OnExit();
wxEntryCleanup();
}
You can just create a wxApp instance rather than deriving your own class using the technique above.
I'm not sure how you expect to do unit testing of your application without entering the mainloop as many wxWidgets components require the delivery of events to function. The usual approach would be to run unit tests after entering the main loop.