次の方法で共有


レポート用のフック関数

更新 : 2007 年 11 月

このトピックの内容は、次の製品に該当します。

Edition

Visual Basic

C#

C++

Web Developer

Express

トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

Standard

トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

Pro/Team

トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

表の凡例 :

トピック該当

対象

トピック該当なし

該当なし

トピックは該当しますが、コマンドは既定では非表示です

既定で非表示のコマンド

_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 サンプル : C ランタイムのデバッグのフック関数

その他の技術情報

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