デバッグ レポートを生成してアプリケーションの進行状況を追跡します (デバッグ バージョンのみ)。 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と_RPTF1arg1、_RPT2と_RPTF2arg1とarg2などを受け取ります。
_RPTマクロと_RPTF マクロは、デバッグ プロセス中にアプリケーションの進行状況を追跡するために使用できるため、printf関数に似ています。 ただし、これらのマクロは、アプリケーションのリテール ビルドで呼び出されないように、#ifdef ステートメントで囲む必要がないため、printfよりも柔軟性が高くなります。 この柔軟性を実現するには、 _DEBUG マクロを使用します。 _RPT マクロと _RPTF マクロは、 _DEBUG フラグが定義されている場合にのみ使用できます。 _DEBUG が定義されていない場合、これらのマクロの呼び出しは前処理で削除されます。
_RPTW マクロと _RPTFW マクロは、これらのマクロのワイド文字バージョンです。 これらは、wprintf に似ており、引数としてワイド文字列を受け取ります。
_RPT マクロは、_CrtDbgReport関数を呼び出して、ユーザー メッセージを含むデバッグ レポートを生成します。 _RPTW マクロは、_CrtDbgReportW 関数を呼び出して、ワイド文字で同じレポートを生成します。 _RPTF マクロと _RPTFW マクロは、ユーザー メッセージに加え、レポート マクロが呼び出された場所のソース ファイルと行番号を含むデバッグ レポートを作成します。 ユーザー メッセージは、printf関数で定義されているのと同じ規則を使用して、arg[n]引数をformat文字列に置き換えることによって作成されます。
_CrtDbgReport または _CrtDbgReportW は、reportType に定義されている現在のレポート モードとファイルに基づいて、デバッグ レポートを生成し、その宛先を決定します。 _CrtSetReportMode関数と_CrtSetReportFile関数を使用して、各レポートの種類の変換先を定義します。
_RPT マクロが呼び出され、_CrtSetReportModeおよび_CrtSetReportFileが呼び出されていない場合、メッセージは次のように表示されます。
| Report type | 出力先 |
|---|---|
_CRT_WARN |
警告テキストは表示されません。 |
_CRT_ERROR |
ポップアップ ウィンドウ。 _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); が指定されている場合と同じです。 |
_CRT_ASSERT |
_CRT_ERROR と同じ。 |
宛先がデバッグ メッセージ ウィンドウで、ユーザーが [ Retry ] ボタンを選択すると、 _CrtDbgReport または _CrtDbgReportW は 1 を返します。 Just-In-Time (JIT) デバッグが有効になっている場合、この戻り値によってこれらのマクロがデバッガーを起動します。 デバッグ エラー処理メカニズムとしてこれらのマクロを使用する方法の詳細については、「 Macros for reporting」を参照してください。
デバッグ レポートを生成するマクロが他にも 2 つ存在します。 _ASSERT マクロはレポートを生成しますが、その式引数がFALSEに評価された場合にのみ生成されます。 _ASSERTE は _ASSERTとまったく同じですが、生成されたレポートに失敗した式が含まれます。
要件
| マクロ | 必須ヘッダー |
|---|---|
_RPT マクロ |
<crtdbg.h> |
_RPTF マクロ |
<crtdbg.h> |
_RPTW マクロ |
<crtdbg.h> |
_RPTFW マクロ |
<crtdbg.h> |
互換性の詳細については、「 Compatibility」を参照してください。
ライブラリ
C ランタイム ライブラリのデバッグ バージョンのみ。
これらのマクロは、 crtdbg.hを含めて実行する場合に使用できますが、これらのマクロは他のランタイム関数を呼び出すので、アプリケーションはデバッグ ライブラリの 1 つとリンクする必要があります。
例
_ASSERT記事の例を参照してください。