-extern "C"
-#ifdef __BORLANDC__
-// SCD: I don't know why, but also OWL uses this function
-BOOL WINAPI DllEntryPoint (HANDLE hModule, DWORD fdwReason, LPVOID lpReserved)
-#else
-BOOL WINAPI DllMain (HANDLE hModule, DWORD fdwReason, LPVOID lpReserved)
+int wxEntry(int& argc, wxChar **argv)
+{
+ DisableAutomaticSETranslator();
+
+ __try
+ {
+ return wxEntryReal(argc, argv);
+ }
+ __except ( wxGlobalSEHandler(GetExceptionInformation()) )
+ {
+ wxFatalExit();
+
+#if !defined(_MSC_VER) || defined(__WXDEBUG__) || (defined(_MSC_VER) && _MSC_VER <= 1200)
+ // this code is unreachable but put it here to suppress warnings in some compilers
+ // and disable for others to supress warnings too
+ return -1;
+#endif // !__VISUALC__ in release build
+ }
+}
+
+#else // !wxUSE_ON_FATAL_EXCEPTION
+
+#if defined(__VISUALC__) && !defined(__WXWINCE__)
+
+static void
+wxSETranslator(unsigned int WXUNUSED(code), EXCEPTION_POINTERS * WXUNUSED(ep))
+{
+ // see wxSETranslator() version for wxUSE_ON_FATAL_EXCEPTION above
+ throw;
+}
+
+#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 && defined(__WXMSW__)
+
+#if wxUSE_UNICODE && !defined(__WXWINCE__)
+ #define NEED_UNICODE_CHECK