Если вы можете изменить источник, поведение отмены (вызываемое assert) необходимо изменить, чтобы подавить диалоговое окно отмены / повторных попыток / игнорирования.
При прерывании будет по-прежнему создаваться аварийный дамп (по умолчанию), поэтому вы не потеряете то, что важно.
Кроме того, вы можете настроить поведение assert для записи только в stderr. Это НЕ требуется, если поведение прерывания соответствует тому, что вы хотите. Примечание: вызовы _Crtxxx активны только в отладочных сборках (/Zi).
Минимальное изменение для отключения отмены / повторной попытки / игнорирования. Раскомментируйте вызовы _Crt и включите crtdbg.h, чтобы также изменить поведение assert в сборках в режиме отладки.
#include <stdlib.h>
//#include <crtdbg.h>
int main(int argc,char **argv);
int main(int argc,char **argv)
{
// ON assert, write to stderr.
//_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
//_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
// Suppress the abort message
_set_abort_behavior( 0, _WRITE_ABORT_MSG);
abort();
return 0;
}
Режим подтверждения MSDN