diff options
Diffstat (limited to 'c')
-rw-r--r-- | c/main.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -51,14 +51,18 @@ void OnTerminate() try { std::rethrow_exception(std::current_exception()); } catch (const term_t& t) { + std::basic_string<TCHAR> tstr = TEXT("The program was terminated due to a Prolog exception: "); TCHAR* tsz; if (PL_get_tchars(t, &tsz, CVT_WRITE)) { - MessageBox(NULL, tsz, TEXT("Fatal Error"), MB_ICONERROR); + tstr += tsz; + MessageBox(NULL, tstr.c_str(), TEXT("Fatal Error"), MB_ICONERROR); } else MessageBoxA(NULL, "The program was terminated due to a Prolog exception.", "Fatal Error", MB_ICONERROR); } catch (std::exception& e) { - MessageBoxA(NULL, e.what(), "Fatal Error", MB_ICONERROR); + std::string str = "The program was terminated due to an exception: "; + str += e.what(); + MessageBoxA(NULL, str.c_str(), "Fatal Error", MB_ICONERROR); } catch (...) { MessageBoxA(NULL, "The program was terminated due to an exception.", "Fatal Error", MB_ICONERROR); |