共用方式為


_RPT,_RPTF,_RPTW,_RPTFW 巨集

藉由產生的偵錯報告 (偵錯版本),會追蹤應用程式的進度。請注意, n 中的引數的指定args ,可以是 0、 1、 2、 3、 4 或 5。

_RPTn(
   reportType,
   format,
...[args]
);
_RPTFn(
   reportType,
   format,
   [args]
);
_RPTWn(
   reportType,
   format 
   [args]
);
_RPTFWn(
   reportType,
   format 
   [args]
);

參數

  • reportType
    Report type: _CRT_WARN, _CRT_ERROR, or _CRT_ASSERT.

  • format
    控制項的格式字串,用來建立使用者的訊息。

  • args
    替換所使用的引數format。

備註

所有這些巨集採用reportType和format參數。此外,它們也可能花最多四個額外的引數,以在巨集名稱後附加數字。For example, _RPT0 and _RPTF0 take no additional arguments, _RPT1 and _RPTF1 take arg1, _RPT2 and _RPTF2 take arg1 and arg2, and so on.

_RPT和**_RPTF巨集是類似於 printf 函式,因為它們可以用來在偵錯的處理程序期間追蹤應用程式的進度。不過,這些巨集是比更有彈性printf因為他們不需要使用括住,所以#ifdef陳述式,以防止它們被呼叫的應用程式的零售版本。這種彈性的方法是使用 _DEBUG 巨集。 _RPT_RPTF巨集才可以使用的時機_DEBUG定義旗標。當_DEBUG**是未定義,這些巨集的呼叫會移除在前置處理過程。

_RPTW和**_RPTFW巨集是這些巨集的寬字元版本。它們就像是wprintf** ,並採取寬字元字串做為引數。

_RPT巨集呼叫 _CrtDbgReport 函式來產生偵錯報告與使用者的訊息。_RPTW巨集呼叫**_CrtDbgReportW函式來產生相同的報告,以寬字元。_RPTF_RPTFW**巨集建立的偵錯報告使用中報表的巨集呼叫,另外使用者的訊息的原始程式檔和行號。使用者的訊息由以取代argn 引數到format字串,使用相同的規則所定義的 printf 函式。

_CrtDbgReport或**_CrtDbgReportW**產生偵錯報告,並決定它的目的地,根據目前的報表模式和檔案定義reportType。_CrtSetReportMode_CrtSetReportFile 函式用來定義每種報表類型的目的地。

如果**_RPT巨集,會呼叫並不_CrtSetReportMode** ,也不**_CrtSetReportFile**已被呼叫,會顯示訊息,如下所示。

報表類型

輸出目的地

_CRT_WARN

不會顯示警告文字。

_CRT_ERROR

快顯視窗。相同好像_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW);已指定。

_CRT_ASSERT

_CRT_ERROR 相同。

當目的地為偵錯訊息視窗,而使用者選擇再試一次 ] 按鈕, _CrtDbgReport或**_CrtDbgReportW** ,則傳回 1,造成啟動偵錯工具,這些巨集,條件只是即時 (JIT) 偵錯已啟用。如需有關如何使用這些巨集,以偵錯錯誤處理機制的詳細資訊,請參閱來進行驗證和報告使用的巨集

已經有產生偵錯報告的其他兩個巨集。_ASSERT 巨集,會產生報告,但是只有當其 [運算式] 引數會評估為 FALSE。_Asserte 的判斷提示被一樣**_ASSERT**,但產生的報告中包括失敗的運算式。

需求

巨集

所需的標頭

_RPT巨集

<crtdbg.h>

_RPTF巨集

<crtdbg.h>

_RPTW巨集

<crtdbg.h>

_RPTFW巨集

<crtdbg.h>

如需相容性資訊,請參閱相容性在簡介中。

文件庫

偵錯版本的 C 執行階段程式庫只。

雖然這些巨集,而且 Crtdbg.h,藉以取得,應用程式必須與其中一個偵錯程式庫連結,因為這些巨集呼叫其他的執行階段函式。

範例

此範例中的,請參閱 _ASSERT 主題。

.NET Framework 對等用法

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

請參閱

參考

偵錯常式