如何检测DLL中的内存泄漏
答案:2 悬赏:30 手机版
解决时间 2021-04-12 11:48
- 提问者网友:niaiwoma
- 2021-04-12 03:17
如何检测DLL中的内存泄漏
最佳答案
- 五星知识达人网友:廢物販賣機
- 2021-04-12 04:14
#pragma once
#ifdef _DEBUG
#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
#else
#define DEBUG_CLIENTBLOCK
#endif
#define _CRTDBG_MAP_ALLOC
#include
#ifdef _DEBUG
#define new DEBUG_CLIENTBLOCK
#endif
//注意, 仍然有些地方会误报, 特别是全局变量.
class CMemLeakCheck
{
private:
CMemLeakCheck()
{
}
public:
static void InitMemLeakCheck()
{
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
}
};
#ifdef _DEBUG
#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
#else
#define DEBUG_CLIENTBLOCK
#endif
#define _CRTDBG_MAP_ALLOC
#include
#ifdef _DEBUG
#define new DEBUG_CLIENTBLOCK
#endif
//注意, 仍然有些地方会误报, 特别是全局变量.
class CMemLeakCheck
{
private:
CMemLeakCheck()
{
}
public:
static void InitMemLeakCheck()
{
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
}
};
全部回答
- 1楼网友:廢物販賣機
- 2021-04-12 05:42
你好!
引起内存泄漏的一个可能原因是 MFC 创建了在消息处理函数内使用的临时对象。在规则 DLL 中,MFC 不自动释放分配给这些对象的内存。
请注意,Visual C++ 文档中不再使用 USRDLL 一词。静态链接到 MFC 的规则 DLL 具有与原来的 USRDLL 相同的特性
仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯