Самое простое решение, скорее всего, использовать SetErrorMode
(с - по крайней мере - SEM_NOGPFAULTERRORBOX
) для закрытия любых таких диалогов об ошибках (см. Флаги в документах MSDN) и без вывода сообщений процесс завершен.
Другой вариант - установить собственный обработчик исключений верхнего уровня. В XP и новее вы можете использовать векторную обработку исключений . В любой системе, в том числе и в более новых, вы можете использовать SetUnhandledExceptionFilter
.
Часть V, в частности глава 25 «Windows через C ++» Рихтера и Насарре, обсуждает эту тему очень подробно и подробно. Конкретная тема обработчиков исключений WER и верхнего уровня также обсуждается в разделе «Расширенная отладка Windows» (хотя и с другой точки зрения).