共用方式為


_CrtSetReportMode

_CrtDbgReport 和任何巨集呼叫 _CrtDbgReport、_CrtDbgReportW, 像是 _ASSERT、_ASSERTE 巨集, _ASSERT、_ASSERTE 巨集, _RPT、_RPTF、_RPTW、_RPTFW 巨集_RPT、_RPTF、_RPTW、_RPTFW 巨集 (僅偵錯版本) 指定目的地或特定報表類型的目的地。

int _CrtSetReportMode( 
   int reportType,
   int reportMode 
);

參數

  • reportType
    報告類型: _CRT_WARN_CRT_ERROR、和**_CRT_ASSERT**。

  • reportMode
    新的報表模式或 reportType 的模式。

傳回值

在成功完成時, reportType傳回之前報表模式或模式由**_CrtSetReportMode** 所針對的報表類型。 如果傳遞當 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

建立訊息方塊與 AbortRetryIgnore 按鈕時顯示訊息。

_CRTDBG_REPORT_MODE

傳回 reportMode 指定的 reportType。

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 );

此外,報告方式或方式每個報告型別可以單獨控制。 例如,指定可能的 _CRT_WARN reportType 傳送至輸出偵錯,字串,而 _CRT_ASSERT 顯示使用偵錯訊息視窗並傳送至 stderr,如先前所述。

需求

常式

必要的標頭

選擇性標頭

_CrtSetReportMode

<crtdbg.h>

<errno.h>

如需詳細資訊,請參閱介紹中的 相容性

程式庫:CRT 程式庫功能 之偵錯版本。

.NET Framework 對等用法

不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需詳細資訊,請參閱平台叫用範例

請參閱

參考

偵錯常式