社区
进程/线程/DLL
帖子详情
FreeLibrary后,怎么看有没有内存泄漏
vc_nj
2010-11-06 01:06:24
FreeLibrary后,如何看我内存有没有泄漏呢,我在dll里定义了一个类, 然后在里面定义了几个对象,这些对象内部分配的内存,都在各自解析函数里有释放,但是,我FreeLibrary后,这些对象就退出释放内存了吗
...全文
209
6
打赏
收藏
FreeLibrary后,怎么看有没有内存泄漏
FreeLibrary后,如何看我内存有没有泄漏呢,我在dll里定义了一个类, 然后在里面定义了几个对象,这些对象内部分配的内存,都在各自解析函数里有释放,但是,我FreeLibrary后,这些对象就退出释放内存了吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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后对象退出时会释放内存
dll文件 c语言程序集,动态载入DLL所需要的三个函数详解(Load
Library
,GetProcAddress,
Free
Library
)...
本文详细介绍了动态加载DLL的方法,重点讲解了Load
Library
、GetProcAddress和
Free
Library
这三个关键函数的使用,包括它们的功能、参数和返回值。Load
Library
用于加载DLL文件,GetProcAddress获取DLL中函数的入口地址,而
Free
Library
则用于卸载DLL。正确使用这三个函数可以避免
内存泄漏
并实现动态调用DLL中的函数。
dll侧加载_动态载入DLL所需要的三个函数详解(Load
Library
,GetProcAddress,
Free
Library
)...
本文介绍了动态载入 DLL 的方式,即在运行中按需调用函数。通过 Load
Library
加载 DLL 到内存,GetProcAddress 获取函数入口地址,
Free
Library
卸载 DLL。详细阐述了这三个 Windows API 函数的格式、功能、参数说明,还提及了 Load
Library
函数的错误代码及引用计数机制,强调避免
内存泄漏
。
win系统动态载入DLL所需要的三个函数详解(Load
Library
,GetProcAddress,
Free
Library
)
本文详细介绍了在Windows系统中动态加载DLL所涉及的三个关键API函数:Load
Library
用于加载DLL文件,GetProcAddress获取DLL中函数的入口地址,
Free
Library
负责从内存中卸载DLL。通过这三个函数,程序员可以在运行时动态调用DLL中的函数,避免了编译时的依赖。同时,文章提到了动态调用的安全性和注意事项,如防止
内存泄漏
。
C++插件化架构实战:基于Load
Library
Ex与
Free
Library
的动态模块管理
本文深入探讨基于Load
Library
Ex和
Free
Library
的Windows DLL动态加载机制,涵盖插件化架构设计动机、虚函数表驱动的跨模块多态调用、工厂函数导出规范、LOAD_WITH_ALTERED_SEARCH_PATH安全加载策略、依赖隔离方案、插件管理器实现、错误码诊断(126/193/127)、跨平台条件编译封装及性能优化技巧。重点强调内存安全、线程安全与版本兼容性保障。
关于使用MFC DLL时提示
内存泄漏
问题
本文记录了在使用MFCDLL时遇到的
内存泄漏
问题排查过程。通过对比MFCDLL和Exe项目的字符集设置,发现了多字节与Unicode字符集不一致导致的
内存泄漏
,并成功解决。
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章