In Linux, we can test with "isatty" if we're attached to a terminal. In this case, the current error reporting suffices (we could, however, redirect the debug log to a file, maybe)
In Linux without a terminal and under Windows, we need to...
redirect stdout, stderr, stdlog and the wide variants to files. For that, a "file_redirection" class could be invented which you instantiate at the beginning of main
display a message box containing the error in main's catch block. In Windows, this is easy, we can just use MessageBox. In Linux, we can use awl and xlib to create a window with the error string.