OnClose与OnDestroy引发的内存泄露问题
来源:互联网 发布:上位机编程 编辑:程序博客网 时间:2024/05/24 07:35
今天在调一个内存泄露的问题,把代码找遍也未发现任何泄露的踪迹。最后,突然发现,使用单文档的小'X‘号关闭未发生内存泄露,但直接关闭整个工程,oh my god!泄露来了。
说明环境:xp+vs2008+MFC MultiDocument
- who take the cake?
然后在程序退出的各大关口设置断点。OnClose函数是必须要看的,发现关闭一个文档时,正常调用了OnClose函数,但是直接关闭整个工程时,并没有调用单个文档的OnClose函数。
额!
MFC中的特性吧。那么当需要退出时,释放空间怎么办?析构函数肯定是能进去的,但是总不能在析构函数中去释放资源吧(为什么不了?)。我又重载了OnDestroy函数,设置断点查看。
- “幸福来敲门了”
关闭单个文档和关闭整个工程都会进入OnDestroy函数。
那么,下次一定要记住MFC的这个特性,程序关闭时是一定会调用OnDestroy消息,OnClose则不一定。从词语意思上也了解出来,OnClose是比较温柔的,但是OnDestroy则暴力了许多。那么直接关闭整个工程时,没有一个个去关闭其中的单个文档,确实很暴力。也难怪会只有OnDestroy消息。
- OnClose与OnDestroy引发的内存泄露问题
- OnClose()与OnDestroy()
- OnClose()与 OnDestroy()
- 内存泄露可以引发的问题
- 对话框的OnClose和OnDestroy消息响应
- 对话框的OnClose和OnDestroy消息响应
- MFC中OnClose和OnDestroy的调用
- OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别
- OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别
- Message引发的内存泄露
- handler可能引发内存泄露问题的处理
- OnClose和OnDestroy
- OnClose和OnDestroy
- OnClose和OnDestroy
- OnClose()和 OnDestroy()
- OnClose和OnDestroy
- OnClose()和OnDestroy()
- OnOK()、OnCancel()()、OnClose()、OnDestroy()
- 生产排程相关知识(二)
- RQP-DEF-0177
- C# 4.0 Features Event Object Locking
- 编程珠玑笔记第一章 a[i>>SHIFT]
- HDU 1107 武林
- OnClose与OnDestroy引发的内存泄露问题
- jQuery基础教程之强大的选择器(过滤选择器-基本过滤选择器)
- HMAC-MD5 算法的java实例
- Matlab------------导出数据
- 这货不光是绿茶!龙井喝完,办公室又来新货铁观音了!
- 概念和方法
- 深入C#学习系列一:序列化(Serialize)、反序列化(Deserialize)
- Installing Adobe AIR on Linux
- Matlab------------取整函数