_CrtSetDumpClient
_CLIENT_BLOCK
型のメモリ ブロックをダンプするアプリケーション定義関数をインストールします (デバッグ バージョンのみ)。
構文
_CRT_DUMP_CLIENT _CrtSetDumpClient( _CRT_DUMP_CLIENT dumpClient );
パラメーター
dumpClient
フックする新しいクライアント定義メモリ ダンプ関数。
戻り値
以前に定義されていたクライアント ブロック ダンプ関数を返します。
解説
この _CrtSetDumpClient
関数を使用すると、アプリケーションは独自の関数をフックして、メモリ ブロックに格納されているオブジェクトを _CLIENT_BLOCK
ダンプできます。 その結果、デバッグ ダンプ関数 (メモリ ブロックなど _CrtMemDumpAllObjectsSince
) が _CrtDumpMemoryLeaks
ダンプ _CLIENT_BLOCK
されるたびに、アプリケーションのダンプ関数も呼び出されます。 _CrtSetDumpClient
を使用すると、アプリケーションは簡単にメモリ リークを検出したり、_CLIENT_BLOCK
ブロックに格納されているデータの内容の検証やレポートを行うことができます。 _DEBUG
が定義されていない場合、_CrtSetDumpClient
の呼び出しは前処理で削除されます。
_CrtSetDumpClient
関数は、dumpClient
で指定された新しいアプリケーション定義ダンプ関数をインストールし、以前に定義されたダンプ関数を返します。 クライアント ブロック ダンプ関数の例は、次のとおりです。
void DumpClientFunction( void *userPortion, size_t blockSize );
userPortion
引数はメモリ ブロックのユーザー データ部分の先頭へのポインターであり、blockSize
は割り当てられたメモリ ブロックのサイズをバイト単位で指定します。 クライアント ブロック ダンプ関数は、void
を返す必要があります。 _CrtSetDumpClient
に渡されるクライアント ダンプ関数へのポインターは、Crtdbg.h で次のように定義されているように、_CRT_DUMP_CLIENT
型です。
typedef void (__cdecl *_CRT_DUMP_CLIENT)( void *, size_t );
型メモリ ブロックで_CLIENT_BLOCK
動作する関数の詳細については、「クライアント ブロック フック関数」を参照してください。 この _CrtReportBlockType
関数を使用して、ブロック型とサブタイプに関する情報を返すことができます。
必要条件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_CrtSetDumpClient |
<crtdbg.h> |
互換性の詳細については、「 Compatibility」を参照してください。
ライブラリ
C ランタイム ライブラリのデバッグ バージョンのみ。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示