共用方式為


_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
    報告類型: _CRT_WARN_CRT_ERROR_CRT_ASSERT

  • format
    對產生使用者信息的格式控制字串。

  • args
    format使用的替換引數。

備註

這些巨集採用 reportType和 format參數。 此外,它們可能也會使用四個其他引數,表示由數字附加至巨集名稱。 例如, _RPT0_RPTF0 不接受其他引數,則為 _RPT1 ,且 _RPTF1 使用 arg1, _RPT2_RPTF2 會使用 arg1 和 arg2,依此類推。

因為它們可以用來在偵錯期間,追蹤應用程式的進度 _RPT_RPTF 巨集類似 printf 函式。 不過,因為它們在應用程式的零售版本中,在 #ifdef 陳述式會不需要將避免呼叫這些巨集比 printf 更具彈性。 使用 _DEBUG 巨集,這種彈性達成;,當 _DEBUG 旗標後, _RPT_RPTF 巨集才可以使用。 當 _DEBUG 沒有定義時,在前置處理中,這些巨集的呼叫將被移除。

_RPTW_RPTFW 巨集是這些巨集寬字元版本。 它們是與 wprintf 並採取寬字元字串做為引數。

_RPT 巨集呼叫 _CrtDbgReport 函式以產生與使用者訊息的偵錯報告。 _RPTW 巨集呼叫 _CrtDbgReportW 函式產生與寬字元的相同的報表。 除了使用者訊息之外, _RPTF_RPTFW 巨集建立與報告巨集呼叫的原始程式檔和行號的偵錯報告。 使用者訊息傳遞替代 arg[n] 引數建立輸入 format 字串,使用 printf 函式定義的相同規則。

_CrtDbgReport_CrtDbgReportW 產生偵錯報告並決定根據目前報表模式和檔案其目的定義為 reportType。 _CrtSetReportMode_CrtSetReportFile 函式定義每個報告類型的目的地。

如果 _RPT 巨集呼叫,且 _CrtSetReportMode_CrtSetReportFile 未呼叫,訊息會如下所示。

回報類型

輸出目標

_CRT_WARN

警告文字不會顯示。

_CRT_ERROR

快顯視窗。 同樣地,如果指定的 _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); 。

_CRT_ASSERT

_CRT_ERROR 相同。

在 Just-In-Time (JIT) 偵錯已啟用條件下,當目的是偵錯訊息視窗,而且使用者按一下 重試 按鈕時, _CrtDbgReport_CrtDbgReportW 會傳回 1,讓這些巨集啟動偵錯工具。 如需使用這些巨集的詳細資訊做為偵錯和錯誤處理機制,請參閱 使用驗證和報告的巨集

產生偵錯報告的其他兩個巨集存在。 _ASSERT 巨集產生報告,不過,只有在其運算式引數評估為 false。 _ASSERTE 是就像 _ASSERT,不過,包括失敗的運算式在產生的報告。

需求

巨集

必要的標頭

_RPT巨集

<crtdbg.h>

_RPTF巨集

<crtdbg.h>

_RPTW巨集

<crtdbg.h>

_RPTFW巨集

<crtdbg.h>

如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility)

程式庫

C run-time libraries 版本的偵錯

雖然同樣為巨集且都因為包含 Crtdbg.h 而加入,應用程式必須連結至偵錯程式庫,因為這些巨集呼叫其他執行階段函式。

範例

請參閱 _ASSERT 主題的範例。

.NET Framework 對等用法

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

請參閱

參考

偵錯常式