Catch «Программа перестала работать» на Vista

В Vista у меня возникла проблема с обработчиком сбоя приложения. В принципе, если произойдет что-то неожиданное, которое невозможно захватить SEH, я получаю это всплывающее окно с «Приложением прекращено работать», blablabla, «Программа закрытия / Отладка», то есть после того, как я отключу отчет об ошибках, используя системная панель управления. С включенным уведомлением об ошибках вы получите диалог задачи с поиском решения в режиме онлайн, закрыть, отладить.

Это не так забавно, если это происходит в автоматизированных инструментах, и я задаюсь вопросом, есть ли способ полностью избавиться от него, прочитать, если мое приложение выйдет из строя, оно просто выйдет из командной строки или исчезнет, ​​но не вызывает диалог ,

    использование

    SetErrorMode(SetErrorMode(0)|SEM_NOGPFAULTERRORBOX); 

    Но я бы предложил установить обработчик исключений, который создает дамп, чтобы вы могли проверить, что произошло. Например crashrpt (или здесь ).

    Смотрите также

    Функциональный сигнал работает на всех платформах POSIX:

     signal(SIGSEGV, &signal_handler); 

    Если вам нужно уловить исключение, которое не поддерживается сигналом, вы также можете взглянуть на AddVectoredExceptionHandler , функцию, специфичную для W32.