В Vista у меня возникла проблема с обработчиком сбоев приложения. Обычно, если происходит что-то непредвиденное, что не может быть зафиксировано SEH, я получаю это всплывающее окно с надписью «Приложение перестало работать», blablabla, «Закрыть программу / отладить программу», то есть после того, как я отключу сообщение об ошибках с помощью панель управления системой. Если включен отчет об ошибках, вы получите диалоговое окно задачи с поиском решения в Интернете, закрытием, отладкой.
Это не так уж смешно, если это происходит в автоматизированных инструментах, и мне интересно, есть ли способ избавиться от этого полностью, прочтите, если мое приложение вылетает, оно просто вылетает в командную строку или исчезает, но не вызывает диалоговое окно .
Функция сигнал работает на всех платформах POSIX:
signal(SIGSEGV, &signal_handler);
Если вам нужно перехватить исключение, которое не поддерживается сигналом, вы также можете взглянуть на AddVectoredExceptionHandler, функцию, специфичную для W32.