2
在Windows中有避免使用assert(..)函數失敗的CRT對話框的方法嗎?我喜歡將錯誤消息打印到控制檯。如果我們沒有在優化版本中定義NDEBUG來實現這個功能,可以使用CrtReportMode(..)嗎?如何避免與assert(..)函數的CRT對話
-Kartlee
在Windows中有避免使用assert(..)函數失敗的CRT對話框的方法嗎?我喜歡將錯誤消息打印到控制檯。如果我們沒有在優化版本中定義NDEBUG來實現這個功能,可以使用CrtReportMode(..)嗎?如何避免與assert(..)函數的CRT對話
-Kartlee
您可以使用_CrtSetReportMode
和_CrtSetReportFile
發送輸出到一個文件(在這種情況下stderr
)來代替。
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE)
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
關於發佈版本的使用,注意言論和庫部分:
當未定義_DEBUG,調用_CrtSetReportMode預處理過程中被刪除。
庫:僅用於C運行時庫的調試版本。