レポート用のフック関数

_CrtSetReportHook を使用して組み込まれたレポート用のフック関数は、_CrtDbgReport がデバッグ レポートを生成するたびに呼び出されます。 レポート用のフック関数を使用して、特定の割り当て型に関するレポートだけを出力できます。 レポート用のフック関数には、次のようなプロトタイプが必要です。

int YourReportHook(int nRptType, char *szMsg, int *retVal);

_CrtSetReportHook に渡すポインターは _CRT_REPORT_HOOK 型です。これらは、CRTDBG.H で次のように定義されています。

typedef int (__cdecl *_CRT_REPORT_HOOK)(int, char *, int *);

ランタイム ライブラリが独自のフック関数を呼び出す場合は、引数 nRptType には、レポートの種類 (_CRT_WARN_CRT_ERROR、または _CRT_ASSERT) が格納されます。引数 szMsg には、レポート用の完全にアセンブルされたメッセージ文字列へのポインターが入ります。また、引数 retVal には、_CrtDbgReport がレポート作成後に通常どおり実行を継続するのか、デバッガーを起動するのかを示す値が格納されます。 retVal の値が 0 の場合は実行を継続し、1 の場合はデバッガーを起動します。

フック関数でメッセージを完全に処理できたため、それ以上レポートを出力する必要がない場合は、TRUE を返すようにします。 FALSE を返した場合は、_CrtDbgReport は通常どおりにレポート メッセージを出力します。

参照

その他の技術情報

デバッグ用フック関数の作成

crt_dbg2 Sample