git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1385
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
/* Need to undef new if including crtdbg.h */
#ifdef new
/* Need to undef new if including crtdbg.h */
#ifdef new
#endif
#include <crtdbg.h>
#if defined(__WXDEBUG__) && wxUSE_GLOBAL_MEMORY_OPERATORS && wxUSE_DEBUG_NEW_ALWAYS
#endif
#include <crtdbg.h>
#if defined(__WXDEBUG__) && wxUSE_GLOBAL_MEMORY_OPERATORS && wxUSE_DEBUG_NEW_ALWAYS
- #define new new(__FILE__,__LINE__)
+ #define new new(__FILE__,__LINE__)
+#endif // wxUSE_VC_CRTDBG
extern char *wxBuffer;
extern char *wxOsVersion;
extern char *wxBuffer;
extern char *wxOsVersion;
#if !defined(_WINDLL) || (defined(_WINDLL) && defined(WXMAKINGDLL))
#if !defined(_WINDLL) || (defined(_WINDLL) && defined(WXMAKINGDLL))
+// temporarily disable this warning
+#ifdef _MSC_VER
+ #pragma warning(disable: 4715) // not all control paths return a value
+#endif // Visual C++
+
//// Main wxWindows entry point
int wxEntry(WXHINSTANCE hInstance,
WXHINSTANCE WXUNUSED(hPrevInstance),
//// Main wxWindows entry point
int wxEntry(WXHINSTANCE hInstance,
WXHINSTANCE WXUNUSED(hPrevInstance),
int nCmdShow,
bool enterLoop)
{
int nCmdShow,
bool enterLoop)
{
-#if !defined(__WXDEBUG__) && !defined(__BORLANDC__) && !defined(__WATCOMC__) // take everything into a try-except block in release build
- try {
+ // take everything into a try-except block in release build
+ // FIXME other compilers must support Win32 SEH (structured exception
+ // handling) too, just find the appropriate keyword in their docs!
+ // Please note that it's _not_ the same as C++ exceptions!
+#if !defined(__WXDEBUG__) && defined(_MSC_VER)
+ #define CATCH_PROGRAM_EXCEPTIONS
+
+ __try {
+#else
+ #undef CATCH_PROGRAM_EXCEPTIONS
#endif
wxhInstance = (HINSTANCE) hInstance;
#endif
wxhInstance = (HINSTANCE) hInstance;
wxApp::CleanUp();
return retValue;
wxApp::CleanUp();
return retValue;
-#if !defined(__WXDEBUG__) && !defined(__BORLANDC__) && !defined(__WATCOMC__) // catch exceptions only in release build
+
+#ifdef CATCH_PROGRAM_EXCEPTIONS
- except ( EXCEPTION_EXECUTE_HANDLER ) {
+ __except ( EXCEPTION_EXECUTE_HANDLER ) {
/*
if ( wxTheApp )
wxTheApp->OnFatalException();
*/
::ExitProcess(3); // the same exit code as abort()
/*
if ( wxTheApp )
wxTheApp->OnFatalException();
*/
::ExitProcess(3); // the same exit code as abort()
+#endif // CATCH_PROGRAM_EXCEPTIONS
+// restore warning state
+#ifdef _MSC_VER
+ #pragma warning(default: 4715) // not all control paths return a value
+#endif // Visual C++
+
#else /* _WINDLL */
//// Entry point for DLLs
#else /* _WINDLL */
//// Entry point for DLLs