次の方法で共有


_CrtSetReportHook

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 が呼び出され、レポートの種類、モード、およびファイルに関する現在の設定を使用してデバッグ レポートが生成されます。 また、_CrtDbgReportreturnValue 戻り値を指定することで、デバッグ ブレークが発生するかどうかをアプリケーションが制御することもできます。 デバッグ レポートの構成と生成方法の詳細については、「 _CrtSetReportMode_CrtSetReportFile、および _CrtDbgReport」を参照してください。

他のフック対応ランタイム関数の使用と、独自のクライアント定義フック関数の記述の詳細については、 Debug フック関数の記述を参照してください。

Note

アプリケーションが /clr でコンパイルされ、main が終了した後にレポート関数が呼び出された場合、レポート関数でいずれかの CRT 関数を呼び出すと、CLR によって例外がスローされます。

要件

ルーチンによって返される値 必須ヘッダー
_CrtSetReportHook <crtdbg.h>

互換性の詳細については、「 Compatibility」を参照してください。

ライブラリ

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

関連項目

デバッグ ルーチン
_CrtGetReportHook