aboutsummaryrefslogtreecommitdiff
path: root/c/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'c/main.cpp')
-rw-r--r--c/main.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/c/main.cpp b/c/main.cpp
index 24fc19f..951770a 100644
--- a/c/main.cpp
+++ b/c/main.cpp
@@ -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);