X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/48733d474148267a7e1008b2bd019451d632ce17..ce7208d49d5ce2ca1dc0b3b83f14f1d04f29c4bf:/src/msw/main.cpp?ds=sidebyside diff --git a/src/msw/main.cpp b/src/msw/main.cpp index 712dc72347..00728f40fd 100644 --- a/src/msw/main.cpp +++ b/src/msw/main.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msw/main.cpp +// Name: src/msw/main.cpp // Purpose: WinMain/DllMain // Author: Julian Smart // Modified by: @@ -24,20 +24,20 @@ #pragma hdrstop #endif -#include "wx/event.h" -#include "wx/app.h" +#ifndef WX_PRECOMP + #include "wx/event.h" + #include "wx/app.h" +#endif //WX_PRECOMP + #include "wx/cmdline.h" #include "wx/scopeguard.h" #include "wx/msw/private.h" +#include "wx/msw/seh.h" #if wxUSE_ON_FATAL_EXCEPTION #include "wx/datetime.h" #include "wx/msw/crashrpt.h" - - #ifdef __VISUALC__ - #include - #endif // __VISUALC__ #endif // wxUSE_ON_FATAL_EXCEPTION #ifdef __WXWINCE__ @@ -118,16 +118,11 @@ unsigned long wxGlobalSEHandler(EXCEPTION_POINTERS *pExcPtrs) wxGlobalSEInformation = pExcPtrs; // give the user a chance to do something special about this - __try + wxSEH_TRY { wxTheApp->OnFatalException(); } - __except ( EXCEPTION_EXECUTE_HANDLER ) - { - // nothing to do here, just ignore the exception inside the - // exception handler - ; - } + wxSEH_IGNORE // ignore any exceptions inside the exception handler wxGlobalSEInformation = NULL; @@ -140,7 +135,7 @@ unsigned long wxGlobalSEHandler(EXCEPTION_POINTERS *pExcPtrs) #ifdef __VISUALC__ -static void wxSETranslator(unsigned int WXUNUSED(code), EXCEPTION_POINTERS *ep) +void wxSETranslator(unsigned int WXUNUSED(code), EXCEPTION_POINTERS *ep) { switch ( wxGlobalSEHandler(ep) ) { @@ -208,20 +203,11 @@ int wxEntry(int& argc, wxChar **argv) { DisableAutomaticSETranslator(); - __try + wxSEH_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 - } + wxSEH_HANDLE(-1) } #else // !wxUSE_ON_FATAL_EXCEPTION @@ -261,10 +247,10 @@ static bool wxIsUnicodeAvailable() { static const wchar_t *ERROR_STRING = L"wxWidgets Fatal Error"; - if ( wxGetOsVersion() != wxWINDOWS_NT ) + if ( wxGetOsVersion() != wxOS_WINDOWS_NT ) { // we need to be built with MSLU support -#if !wxUSE_UNICODE_MSLU +#if !wxUSE_UNICODE_MSLU // 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 @@ -420,4 +406,3 @@ void wxSetInstance(HINSTANCE hInst) } #endif // wxUSE_BASE -