次の方法で共有


_CrtSetReportHook

更新 : 2007 年 11 月

クライアント定義のレポート関数を C ランタイム デバッグのレポート プロセスにフックしてインストールします (デバッグ バージョンだけ)。

_CRT_REPORT_HOOK _CrtSetReportHook( 
   _CRT_REPORT_HOOK reportHook 
);

パラメータ

  • reportHook
    C ランタイム デバッグのレポート プロセスに新しくフックするクライアント定義のレポート関数。

戻り値

前回のクライアント定義レポート関数を返します。

解説

_CrtSetReportHook を使用すると、アプリケーションは独自のレポート関数を C ランタイム デバッグ ライブラリのレポート プロセスにフックできます。その結果、_CrtDbgReport が呼び出されてデバッグ レポートを生成するたびに、アプリケーションのレポート関数が最初に呼び出されます。この機能によって、アプリケーションは、デバッグ レポートにフィルタをかけて特定の割り当て型だけを抽出することも、_CrtDbgReport では指定できない出力先にレポートを送信することもできます。_DEBUG が未定義の場合、_CrtSetReportHook の呼び出しはプリプロセスで削除されます。

_CrtSetReportHook のより堅牢なバージョンについては、_CrtSetReportHook2 を参照してください。

_CrtSetReportHook 関数は、reportHook で指定されたクライアント定義のレポート関数を新しくインストールし、前回のクライアント定義フックを返します。クライアント定義のレポート フック関数のプロトタイプの宣言例を次に示します。

int YourReportHook( int reportType, char *message, int *returnValue );

reportType は、デバッグ レポートの種類 (_CRT_WARN、_CRT_ERROR、または _CRT_ASSERT) です。message は、レポートに出力されるデバッグ ユーザー メッセージであり、完全にアセンブルされています。returnValue は、クライアント定義レポート関数によって指定された値で、_CrtDbgReport が返します。指定できるレポートの種類の詳細については、_CrtSetReportMode 関数を参照してください。

クライアント定義レポート関数がデバッグ メッセージのすべてを処理したために、これ以上レポート処理を行う必要がない場合は、TRUE を返します。FALSE が返された場合、_CrtDbgReport が呼び出されて、レポートの種類、レポート モード、およびレポート ファイルの現在の設定を使用してデバッグ レポートが生成されます。また、_CrtDbgReport の戻り値を returnValue に指定すると、アプリケーションはデバッグ ブレークの発生も制御できます。デバッグ レポートの設定方法および生成方法の詳細については、_CrtSetReportMode、_CrtSetReportFile、および _CrtDbgReport を参照してください。

フックをサポートするその他のランタイム関数の使い方の詳細と、独自のクライアント定義フック関数の記述方法については、「デバッグ用フック関数の作成」を参照してください。

0yysf5e6.alert_note(ja-jp,VS.90).gifメモ :

アプリケーションが /clr でコンパイルされ、アプリケーションがメイン関数を出た後でレポート関数が呼び出された場合、レポート関数が CRT 関数を呼び出すと、CLR が例外をスローします。

必要条件

ルーチン

必須ヘッダー

_CrtSetReportHook

<crtdbg.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

ライブラリ

C ランタイム ライブラリのデバッグ バージョンのみ。

使用例

_CrtSetReportHook の使用例については、「report サンプル : C ランタイムのデバッグ レポート関数」を参照してください。

.NET Framework の相当するアイテム

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

参照

デバッグ ルーチン

_CrtGetReportHook