Share via


_RPT、_RPTF、_RPTW、_RPTFW のマクロ

更新 : 2007 年 11 月

デバッグ レポートを生成することによって、アプリケーションの進行状況を追跡します (デバッグ バージョンのみ)。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 パラメータを受け取ります。さらに、マクロ名の末尾の数字で示される追加引数を 4 つまで受け取ります。たとえば、_RPT0 と _RPTF0 は追加の引数を使用せず、_RPT1 と _RPTF1 は arg1 を使用し、_RPT2 と _RPTF2 は arg1 と arg2 を使用します。

_RPT マクロと _RPTF マクロは、デバッグ中にアプリケーションの実行状況を追跡できるという点で、printf 関数に似ています。ただし、これらのマクロは、アプリケーションのリテール バージョンのビルドで呼び出されないようにするために #ifdef ステートメントで囲む必要がないため、printf 関数よりも柔軟です。この柔軟性は、_DEBUG マクロを使用することで実現されます。_RPT マクロと _RPTF マクロを使用できるのは、_DEBUG フラグが定義されている場合だけです。_DEBUG が未定義の場合、これらのマクロの呼び出しはプリプロセス時に削除されます。

_RPTW_RPTFW は、ワイド文字バージョンとして Visual C++ 2005 で新たに導入されたマクロです。これらは wprintf に似ていますが、引数としてワイド文字列を受け取ります。

_RPT マクロは、_CrtDbgReport 関数を呼び出し、ユーザー メッセージを含むデバッグ レポートを生成します。_RPTW のマクロは、_CrtDbgReportW 関数を呼び出し、ワイド文字を使用して同じレポートを生成します。_RPTF マクロと _RPTFW マクロで作成されるデバッグ レポートには、ユーザー メッセージだけでなく、レポート マクロを呼び出したソース ファイルと行番号も含まれます。ユーザー メッセージは、printf 関数で定義されている規則を使用し、format に従って arg[n] の各引数に値を代入することによって作成されます。

_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 を返します。Just-In-Time (JIT) デバッグが有効な場合、これらのマクロはデバッガを起動します。これらのマクロをデバッグ時のエラー処理機構として使用する方法については、「レポート用マクロの使用」を参照してください。

デバッグ レポートを生成するマクロは、このほかに 2 つあります。_ASSERT マクロは、式の引数が FALSE に評価された場合だけレポートを生成します。_ASSERTE マクロは _ASSERT と同じですが、失敗した式がレポートで報告されます。

必要条件

マクロ

必須ヘッダー

_RPT マクロ

<crtdbg.h>

_RPTF マクロ

<crtdbg.h>

_RPTW マクロ

<crtdbg.h>

_RPTFW マクロ

<crtdbg.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

ライブラリ

C ランタイム ライブラリのデバッグ バージョンのみ。

これらのマクロは、Crtdbg.h をインクルードすると取得できます。ただし、これらのマクロは、他のランタイム関数を呼び出すため、アプリケーションをデバッグ ライブラリのアプリケーションにリンクしておく必要があります。

使用例

_ASSERT のトピックの例を参照してください。

.NET Framework の相当するアイテム

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

参照

デバッグ ルーチン