summaryrefslogtreecommitdiff
path: root/platform/windows/godot_win.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/windows/godot_win.cpp')
-rw-r--r--platform/windows/godot_win.cpp34
1 files changed, 21 insertions, 13 deletions
diff --git a/platform/windows/godot_win.cpp b/platform/windows/godot_win.cpp
index d2ac6ecb50..4450cb3670 100644
--- a/platform/windows/godot_win.cpp
+++ b/platform/windows/godot_win.cpp
@@ -157,24 +157,32 @@ int widechar_main(int argc, wchar_t **argv) {
};
int main(int _argc, char **_argv) {
- // _argc and _argv are ignored
- // we are going to use the WideChar version of them instead
+// _argc and _argv are ignored
+// we are going to use the WideChar version of them instead
- LPWSTR *wc_argv;
- int argc;
- int result;
+#ifdef CRASH_HANDLER_EXCEPTION
+ __try {
+#endif
+ LPWSTR *wc_argv;
+ int argc;
+ int result;
- wc_argv = CommandLineToArgvW(GetCommandLineW(), &argc);
+ wc_argv = CommandLineToArgvW(GetCommandLineW(), &argc);
- if (NULL == wc_argv) {
- wprintf(L"CommandLineToArgvW failed\n");
- return 0;
- }
+ if (NULL == wc_argv) {
+ wprintf(L"CommandLineToArgvW failed\n");
+ return 0;
+ }
- result = widechar_main(argc, wc_argv);
+ result = widechar_main(argc, wc_argv);
- LocalFree(wc_argv);
- return result;
+ LocalFree(wc_argv);
+ return result;
+#ifdef CRASH_HANDLER_EXCEPTION
+ } __except (CrashHandlerException(GetExceptionInformation())) {
+ return 1;
+ }
+#endif
}
HINSTANCE godot_hinstance = NULL;