_CrtSetDumpClient
_CLIENT_BLOCK 型のメモリ ブロックをダンプするアプリケーション定義関数をインストールします (デバッグ バージョンのみ)。
_CRT_DUMP_CLIENT _CrtSetDumpClient(
_CRT_DUMP_CLIENT dumpClient
);
パラメーター
- dumpClient
C ランタイム デバッグ メモリ ダンプ プロセスにフックする新しいクライアント定義メモリ ダンプ関数。
戻り値
以前に定義されていたクライアント ブロック ダンプ関数を返します。
解説
_CrtSetDumpClient 関数を使用すると、アプリケーションは独自の関数をフックして、_CLIENT_BLOCK メモリ ブロックに格納されているオブジェクトを C ランタイム デバッグのメモリ ダンプ プロセスにダンプすることができます。 その結果、_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 型のメモリ ブロックを操作する関数の詳細については、「Client ブロック用のフック関数」を参照してください。 ブロックの型やその細分化された型に関する情報を返すには、_CrtReportBlockType 関数を使用できます。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_CrtSetDumpClient |
<crtdbg.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのデバッグ バージョンのみ。
同等の .NET Framework 関数
使用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。