我有个exe,假设是A,需要调用一个带窗口资源的dll,假设是B,B要调用一个数据访问的dll,假设是b1,b同时还调用一个检测网络状态的dll,假设是b2.A---B
B-----b1
|------b2上面是调用关系。A调用B用的是LoadLibrary("B.dll");使用一堆函数,比如初始化窗口,显示,隐藏窗口,销毁窗口和各种资源。现在发现一个问题:
如果程序A不调用B,一定不会出现内存泄露。如果A调用B,一定出现内存泄露。
后来,我仔细检查了调用过程,发现A在调用B的方法过程中,没有泄露,也就是说,从loadlibrary开始,初始化,显示,隐藏,销毁,都没有泄露。
然后在关闭A的时候,出现了泄露,在关闭A的时候,响应了ondestroy函数,函数中freelibrary。
也就是说:泄露是发生在B的生命周期内。b1,b2的内存泄露,会不会导致这样的现象,
B-----b1
|------b2上面是调用关系。A调用B用的是LoadLibrary("B.dll");使用一堆函数,比如初始化窗口,显示,隐藏窗口,销毁窗口和各种资源。现在发现一个问题:
如果程序A不调用B,一定不会出现内存泄露。如果A调用B,一定出现内存泄露。
后来,我仔细检查了调用过程,发现A在调用B的方法过程中,没有泄露,也就是说,从loadlibrary开始,初始化,显示,隐藏,销毁,都没有泄露。
然后在关闭A的时候,出现了泄露,在关闭A的时候,响应了ondestroy函数,函数中freelibrary。
也就是说:泄露是发生在B的生命周期内。b1,b2的内存泄露,会不会导致这样的现象,
解决方案 »
- 打印程序
- 新手求教:如何在自定义的控件里响应串口接收消息
- CMap中保存CMap,并将外层CMap序列化到文件中的问题
- 如何封送结构体的二级指针
- 我要把两个CString合并为一个,再把这个CString转换为byte[]数组应该怎么做?
- 总结:在一个工程中添加别的工程的中已创建好的对话框资源。(或是。。。)
- 怎么样让CMD.EXE以独立进程从其他程序中调用运行?同时控制CMD的输出流?
- 我都快急死了!如何使用pDC->DrawText(...)
- 各位兄弟,还不睡觉
- 需要一个最新的windows SDK 哪儿有
- MFC//对话框成员函数声明一个CPaintDC dc(this);然后在OnPaint函数里也声明一个CPaintDC dc(this);//会内存错误?
- 键盘响应函数 现在想要达到一按下键 此键值就发送出去
用工具检查啊,哪个dll出问题了,就找dll的作者
不过比较累了,
就是把项目复制,然后去掉一个调用的dll 。看看还泄露不。呵呵。