+ // wxApp initialization: this can be customized
+ // --------------------------------------------
+
+ if ( !app->Initialize(argc, argv) )
+ {
+ return false;
+ }
+
+ wxCallAppCleanup callAppCleanup(app.get());
+
+ // for compatibility call the old initialization function too
+ if ( !app->OnInitGui() )
+ return false;
+
+
+ // common initialization after wxTheApp creation
+ // ---------------------------------------------
+
+ if ( !DoCommonPostInit() )
+ return false;
+
+
+ // prevent the smart pointer from destroying its contents
+ app.release();
+
+ // and the cleanup object from doing cleanup
+ callAppCleanup.Dismiss();
+
+ return true;
+}
+
+#if wxUSE_UNICODE
+
+// we provide a wxEntryStart() wrapper taking "char *" pointer too
+bool wxEntryStart(int& argc, char **argv)
+{
+ ConvertArgsToUnicode(argc, argv);
+
+ if ( !wxEntryStart(argc, gs_initData.argv) )