_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 を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。