_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。 如需詳細資訊,請參閱平台叫用範例。