_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 的客户端转储函数的指针是 _CRT_DUMP_CLIENT 类型,如 Crtdbg.h 中所定义:

typedef void (__cdecl *_CRT_DUMP_CLIENT)( void *, size_t );

有关在 _CLIENT_BLOCK 类型内存块上操作的函数的详细信息,请参阅客户端块挂钩函数_CrtReportBlockType 函数可用于返回有关块类型和子类型的信息。

要求

例程 必需的标头
_CrtSetDumpClient <crtdbg.h>

有关兼容性的详细信息,请参阅 兼容性

仅限 C 运行时库的调试版本。

另请参阅

调试例程
_CrtReportBlockType
_CrtGetDumpClient