У меня проблема с моим консольным приложением, в котором я создаю файл журнала для хранения различных ошибок, которые произошли во время выполнения программы.
Я записываю все свои сообщения об ошибках в строковый буфер (stringstream) и передаю указатель этого буфера всем функциям, которые используют функции записи в буфер.
В конце я хочу проверить, пуст ли буфер; если да, то ничего не происходит и main должен вернуть 0; если нет, то буфер должен быть записан в файл.
Нет проблем при нормальном выходе из программы (в этом случае, когда основная функция возвращает 0), но как я могу проверить буфер, когда приложение закрыто с помощью «X»? Могу ли я поймать событие?
Я уже пробовал std :: setTerminate (), но он вызывает функцию-обработчик только при выходе из программы, а не когда я закрываю ее нажатием «X». Более того, я действительно не хочу использовать SetConsoleCtrlHandler.
Задача ещё не решена.
Других решений пока нет …