_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
パラメーターを受け取ります。 さらに、マクロ名に追加された番号で表される最大 4 つの引数を受け取る場合もあります。 たとえば、_RPT0
と_RPTF0
は、これ以上引数を取る必要はありません。_RPT1
と_RPTF1
arg1
、_RPT2
と_RPTF2
arg1
と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
記事の例を参照してください。