X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e5f679554c2ebc156e55929e083ee7612cbfe0ac..77f4f0a700031e1c1fa4ece26df44f3af49b7545:/src/msw/main.cpp diff --git a/src/msw/main.cpp b/src/msw/main.cpp index 173e046078..ffd0db8921 100644 --- a/src/msw/main.cpp +++ b/src/msw/main.cpp @@ -93,7 +93,7 @@ extern int wxEntryReal(int& argc, wxChar **argv); #endif // __VISUALC__/!__VISUALC__ // ---------------------------------------------------------------------------- -// wrapper wxEntry catching all Win32 exceptions occuring in a wx program +// wrapper wxEntry catching all Win32 exceptions occurring in a wx program // ---------------------------------------------------------------------------- // wrap real wxEntry in a try-except block to be able to call @@ -251,7 +251,7 @@ int wxEntry(int& argc, wxChar **argv) #endif // wxUSE_BASE -#if wxUSE_GUI +#if wxUSE_GUI && defined(__WXMSW__) // ---------------------------------------------------------------------------- // Windows-specific wxEntry @@ -262,6 +262,28 @@ WXDLLEXPORT int wxEntry(HINSTANCE hInstance, wxCmdLineArgType WXUNUSED(pCmdLine), int nCmdShow) { + // the first thing to do is to check if we're trying to run an Unicode + // program under Win9x w/o MSLU emulation layer - if so, abort right now + // as it has no chance to work and has all chances to crash +#if wxUSE_UNICODE && !wxUSE_UNICODE_MSLU && !defined(__WXWINCE__) + if ( wxGetOsVersion() != wxWINDOWS_NT ) + { + // note that we can use MessageBoxW() as it's implemented even under + // Win9x - OTOH, we can't use wxGetTranslation() because the file APIs + // used by wxLocale are not + ::MessageBox + ( + NULL, + _T("This program uses Unicode and requires Windows NT/2000/XP.\nProgram aborted."), + _T("wxWidgets Fatal Error"), + MB_ICONERROR | MB_OK + ); + + return -1; + } +#endif // wxUSE_UNICODE && !wxUSE_UNICODE_MSLU + + // remember the parameters Windows gave us wxSetInstance(hInstance); wxApp::m_nCmdShow = nCmdShow; @@ -348,7 +370,7 @@ DllMain(HINSTANCE hModule, DWORD fdwReason, LPVOID WXUNUSED(lpReserved)) #endif // !NOMAIN -#endif // wxUSE_GUI +#endif // wxUSE_GUI && __WXMSW__ // ---------------------------------------------------------------------------- // global HINSTANCE