+#endif // __VISUALC__
+
+int wxEntry(int& argc, wxChar **argv)
+{
+ DisableAutomaticSETranslator();
+
+ return wxEntryReal(argc, argv);
+}
+
+#endif // wxUSE_ON_FATAL_EXCEPTION/!wxUSE_ON_FATAL_EXCEPTION
+
+#endif // wxUSE_BASE
+
+#if wxUSE_GUI
+
+// ----------------------------------------------------------------------------
+// Windows-specific wxEntry
+// ----------------------------------------------------------------------------
+
+WXDLLEXPORT int wxEntry(HINSTANCE hInstance,
+ HINSTANCE WXUNUSED(hPrevInstance),
+ wxCmdLineArgType WXUNUSED(pCmdLine),
+ int nCmdShow)
+{
+ // remember the parameters Windows gave us
+ wxSetInstance(hInstance);
+ wxApp::m_nCmdShow = nCmdShow;
+
+ // parse the command line: we can't use pCmdLine in Unicode build so it is
+ // simpler to never use it at all (this also results in a more correct
+ // argv[0])
+
+ // break the command line in words
+ wxArrayString args;
+
+ const wxChar *cmdLine = ::GetCommandLine();
+ if ( cmdLine )
+ {
+ args = wxCmdLineParser::ConvertStringToArgs(cmdLine);
+ }
+
+#ifdef __WXWINCE__
+ // WinCE doesn't insert the program itself, so do it ourselves.
+ args.Insert(wxGetFullModuleName(), 0);
+#endif
+
+ int argc = args.GetCount();
+
+ // +1 here for the terminating NULL
+ wxChar **argv = new wxChar *[argc + 1];
+ for ( int i = 0; i < argc; i++ )
+ {
+ argv[i] = wxStrdup(args[i]);
+ }
+
+ // argv[] must be NULL-terminated
+ argv[argc] = NULL;
+
+ return wxEntry(argc, argv);
+}
+
+// May wish not to have a DllMain or WinMain, e.g. if we're programming
+// a Netscape plugin or if we're writing a console application
+#if !defined(NOMAIN)
+
+extern "C"
+{
+
+// ----------------------------------------------------------------------------
+// WinMain
+// ----------------------------------------------------------------------------
+
+// Note that WinMain is also defined in dummy.obj, which is linked to
+// an application that is using the DLL version of wxWidgets.