Как избежать диалога CRT с функцией assert (..) - PullRequest
2 голосов
/ 07 сентября 2011

Есть ли способ в Windows избежать диалога CRT при сбое с функцией assert (..)? Мне нравится выводить сообщение об ошибке на консоль. Можно ли использовать CrtReportMode (..), если мы не определяем NDEBUG в оптимизированной версии для достижения этой цели?

-Kartlee

1 Ответ

4 голосов
/ 07 сентября 2011

Вы можете использовать _CrtSetReportMode и _CrtSetReportFile для отправки вывода в файл (в данном случае stderr).

_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE)
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );

Что касается использования в сборке выпуска, обратите внимание на замечания и разделы библиотек:

Когда _DEBUG не определен, вызовы _CrtSetReportMode удаляются во время предварительной обработки.

Библиотеки: отладочные версииТолько библиотеки времени выполнения C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...