_CrtSetReportMode
指定 所 _CrtDbgReport
產生之特定報表類型的目的地或目的地,以及任何呼叫 _CrtDbgReport
的宏, _CrtDbgReportW
例如 _ASSERT
、 _ASSERTE
、 _ASSERT_EXPR
宏 和 _RPT
、、 _RPTF
、 _RPTW
宏 _RPTFW
(僅限偵錯版本)。
語法
int _CrtSetReportMode(
int reportType,
int reportMode
);
參數
reportType
報表類型:_CRT_WARN
、_CRT_ERROR
和 _CRT_ASSERT
。
reportMode
reportType
的一或多個新報表模式。
傳回值
成功完成時,_CrtSetReportMode
會傳回 reportType
中指定之報表類型的先前報表模式。 如果為 傳入 reportType
不正確值,或為 reportMode
指定了無效模式, _CrtSetReportMode
則會叫用不正確參數處理常式,如參數驗證 中所述 。 若允許繼續執行,此函式會將 errno
設為 EINVAL
,並傳回 -1。 如需詳細資訊,請參閱errno
, _doserrno
, _sys_errlist
和_sys_nerr
.
備註
_CrtSetReportMode
指定 _CrtDbgReport
的輸出目的地。 由於巨集 _ASSERT
、_ASSERTE
、_RPT
和 _RPTF
呼叫 _CrtDbgReport
,因此 _CrtSetReportMode
會指定使用這些巨集指定之文字的輸出目的地。
未定義 時 _DEBUG
,會在前置處理期間移除 對 的 _CrtSetReportMode
呼叫。
如果您未呼叫 _CrtSetReportMode
來定義訊息的輸出目的地,則下列預設值會生效:
判斷提示失敗及錯誤會導向到偵錯訊息視窗。
Windows 應用程式的警告會傳送至偵錯工具的輸出視窗。
不會顯示來自主控台應用程式的警告。
下表列出 中 Crtdbg.h
定義的報表類型。
報表類型 | 描述 |
---|---|
_CRT_WARN |
不需要立即注意的警告、訊息和資訊。 |
_CRT_ERROR |
錯誤、無法復原的問題和需要立即注意的問題。 |
_CRT_ASSERT |
判斷提示失敗 (評估為 FALSE 的判斷提示運算式)。 |
_CrtSetReportMode
函式會將 reportMode
中指定的新報表模式指派給 reportType
中指定的報表類型,並傳回先前為 reportType
定義的報表模式。 下表列出 reportMode
的可用選項及 _CrtDbgReport
的結果行為。 這些選項在 Crtdbg.h 中定義為位元旗標。
報表模式 | _CrtDbgReport 行為 |
---|---|
_CRTDBG_MODE_DEBUG |
將訊息寫入至偵錯工具的輸出視窗。 |
_CRTDBG_MODE_FILE |
將訊息寫入至使用者提供的檔案控制代碼。 _CrtSetReportFile 應該呼叫 以定義要作為目的地的特定檔案或資料流程。 |
_CRTDBG_MODE_WNDW |
建立訊息方塊以顯示訊息, 以及 [中止 ]、 [重試 ] 和 [忽略 ] 按鈕。 |
_CRTDBG_REPORT_MODE |
傳回指定之 reportType 的 reportMode :1 _CRTDBG_MODE_FILE 2 _CRTDBG_MODE_DEBUG 4 _CRTDBG_MODE_WNDW |
每個報表類型可使用一個、兩個或三個模式進行報告,或完全不使用任何模式。 因此,可以針對單一報表類型定義多個目的地。 例如,下列程式碼片段會將判斷提示失敗同時傳送至偵錯訊息視窗和 stderr
:
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
此外,您可以分別控制每個報表類型的報告模式或模式。 例如,您可以指定 reportType
_CRT_WARN
的 移至輸出偵錯字串的 ,同時 _CRT_ASSERT
使用偵錯訊息視窗顯示,並傳送至 stderr
,如先前所示。
需求
常式 | 必要的標頭 | 選擇性標頭 |
---|---|---|
_CrtSetReportMode |
<crtdbg.h> |
<errno.h> |
如需相容性詳細資訊,請參閱相容性。
程式庫: 僅偵錯 C 執行時間程式庫 的版本。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應