_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 ランタイム ライブラリのデバッグ バージョンのみ。

関連項目

デバッグ ルーチン
_CrtReportBlockType
_CrtGetDumpClient