_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
が呼び出され、レポートの種類、モード、およびファイルに関する現在の設定を使用してデバッグ レポートが生成されます。 また、_CrtDbgReport
の returnValue
戻り値を指定することで、デバッグ ブレークが発生するかどうかをアプリケーションが制御することもできます。 デバッグ レポートの構成と生成方法の詳細については、「 _CrtSetReportMode
、 _CrtSetReportFile
、および _CrtDbgReport
」を参照してください。
他のフック対応ランタイム関数の使用と、独自のクライアント定義フック関数の記述の詳細については、 Debug フック関数の記述を参照してください。
Note
アプリケーションが /clr でコンパイルされ、main が終了した後にレポート関数が呼び出された場合、レポート関数でいずれかの CRT 関数を呼び出すと、CLR によって例外がスローされます。
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_CrtSetReportHook |
<crtdbg.h> |
互換性の詳細については、「 Compatibility」を参照してください。
ライブラリ
C ランタイム ライブラリのデバッグ バージョンのみ。