Как отключить диалоговое окно, которое появляется при выходе из приложения ошибки? «Неизвестная программная исключительная ситуация 0xc0020001» - PullRequest
0 голосов
/ 03 апреля 2012

Я получаю сообщение об ошибке в моем модульном тесте, в результате чего происходит непрерывная интеграция с TeamCity.Как я могу сделать ошибку без головы?Исправление ошибки - это отдельная проблема, пожалуйста, не говорите мне об этом.

1 Ответ

1 голос
/ 03 апреля 2012

Самое простое решение, скорее всего, использовать SetErrorMode (с - по крайней мере - SEM_NOGPFAULTERRORBOX) для закрытия любых таких диалогов об ошибках (см. Флаги в документах MSDN) и без вывода сообщений процесс завершен.

Другой вариант - установить собственный обработчик исключений верхнего уровня. В XP и новее вы можете использовать векторную обработку исключений . В любой системе, в том числе и в более новых, вы можете использовать SetUnhandledExceptionFilter.

Часть V, в частности глава 25 «Windows через C ++» Рихтера и Насарре, обсуждает эту тему очень подробно и подробно. Конкретная тема обработчиков исключений WER и верхнего уровня также обсуждается в разделе «Расширенная отладка Windows» (хотя и с другой точки зрения).

...