FreeLibrary后,怎么看有没有内存泄漏

vc_nj 2010-11-06 01:06:24
FreeLibrary后,如何看我内存有没有泄漏呢,我在dll里定义了一个类, 然后在里面定义了几个对象,这些对象内部分配的内存,都在各自解析函数里有释放,但是,我FreeLibrary后,这些对象就退出释放内存了吗
...全文
171 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vc_nj 2010-11-12
  • 打赏
  • 举报
回复
freelibrary后,我的断点跑不进去
szgrape 2010-11-06
  • 打赏
  • 举报
回复
设个断点跑一跑,看能不能进去析构里不就可以知道了
vc_nj 2010-11-06
  • 打赏
  • 举报
回复
// CGrobal.h

class CGrobal
{
public:
CGrobal();
~CGrobal();
void Create(int sz);
private:
char *m_pData;
int size;
};

// CGrobal.cpp
#include "Grobal.h"

CGrobal g_Grobal;

_declspec(dllexport) void Init(int size)
{
g_Grobal.Create(size);
}

CGrobal::CGrobal()
{
size = 0;
m_pData = NULL;
}

CGrobal::~CGrobal()
{
if(m_pData)
{
delete m_pData;
m_pData = NULL;
}
}

void CGrobal::Create(int sz)
{
m_pData = new char[sz];
memset(m_pData, 0, sz * sizeof(char));
size = sz;
}

//////////////////////////////////////////////////////////
以下调用dll
调用1 :
HINSTANCE h1 = LoadLibrary("GROBAL.dll");
.....
Init(5);
.....
FreeLibrary(h1);

调用2 :
HINSTANCE h1 = LoadLibrary("GROBAL.dll");
.....
Init(5);
.....
{
HINSTANCE h2 = LoadLibrary("GROBAL.dll");
......
Init(10);
......
FreeLibrary(h2);
}
.....
FreeLibrary(h1);

// 以上调用的2个例子有内存泄露吗
brent1901 2010-11-06
  • 打赏
  • 举报
回复
FreeLibrary 后引用数 -1
qsycn 2010-11-06
  • 打赏
  • 举报
回复
可用BoundsChecker查看

由于在析构中释放,FreeLibrary后对象退出时会释放内存

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧