_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
。
他のフック対応ランタイム関数の使用および独自のクライアント定義フック関数の記述の詳細については、フック関数の記述のデバッグを参照してください。
Note
アプリケーションが /clr でコンパイルされ、main が終了した後にレポート関数が呼び出された場合、レポート関数でいずれかの CRT 関数を呼び出すと、CLR によって例外がスローされます。
必要条件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_CrtSetReportHook |
<crtdbg.h> |
互換性の詳細については、「 Compatibility」を参照してください。
ライブラリ
C ランタイム ライブラリのデバッグ バージョンのみ。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示