孙鑫VC学习笔记:第十三讲 (六) 关于释放内存
关于释放内存
不管是新建文档还是打开另外一份文档,文档对象都是被重复使用的,我们应该在这个时候去释放先前分配的内存。在打开或者新建一个文档时都会调用Cdocument::OnOpenDocument方法,而这个方法又会调用DeletContents成员函数删除文档数据,该函数在文档被销毁之前或文档被重复使用之前被调用,用来删除对象的数据(但并不消除对象本身),从而确保文档数据是空的。这对于一个单文档应用程序来说尤其重要,因为单文档应用程序只使用一个文档。
---------------------------------------------------------------------------------
前面我们在CGraphicView::OnLButtonUp方法中用new方法在堆中分配了一个内存:
CGraph *pGraph =new CGraph(m_nDrawType,m_ptOrigin,point);
现在来看看如何释放这个对象内存:
1.首先在CGraphicDoc中添加一个虚函数:DeletContents()
2.然后在CGraphicDoc::DeleteContents()方法中去释放pGraph指向的内存。
注意:
1.CDocument::DeleteContents()会在打开、新建、关闭文档时被调用
2.CObArray::RemoveAt 方法将队列中从指定位置开始移除一个或多个元素,然后将该位置以上的元素下移,从而导致数组中数据的重排。在上面的代码中,m_obArray对象从第0个位置开始移除,移一次后面的元素下移一个单位,当然nCount数目也应该相应地减少一个,但是上们的nCount并不会减少,所以会出现错误。把代码改成下面的代码就不会出现非法操作。
孙鑫VC学习笔记:第十三讲 (六) 关于释放内存相关推荐
- 孙鑫VC++学习笔记(转载至程序员之家--虎非龙)[11--15] .
第11课 1.创建4个菜单,为其添加消息响应,用成员变量保存绘画类型.添加LButtonDown和Up消息. 2.当窗口重绘时,如果想再显示原先画的数据,则需要保存数据.为此创建一个新类来记录绘画类型 ...
- 孙鑫VC++学习笔记(转载至程序员之家--虎非龙)[11--15]
第11课 1.创建4个菜单,为其添加消息响应,用成员变量保存绘画类型.添加LButtonDown和Up消息. 2.当窗口重绘时,如果想再显示原先画的数据,则需要保存数据.为此创建一个新类来记录绘画类型 ...
- 孙鑫VC学习笔记:第七讲
七.对话框 2006年8月5日 14:25 因为笔记是用OneNote做的,上传以后为看不到图片,于是我截图放到相册上面, 相册地址为:http://photo.163.com/photos/good ...
- 孙鑫mfc学习笔记第十四课
第十四课 网络的相关知识,网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过bind与驱动程序建立关系.此后,应用程序送给Socket的数据,由Sock ...
- 孙鑫VC学习系列教程
教程简介 1.循序渐进 从Win32SDK编程开始讲解,帮助大家理解掌握Windows编程的核心 -- 消息循环机制. 2.通俗易懂 编程语言枯燥难懂,然而通过孙鑫老师形象化的讲解,Windows和M ...
- 视觉SLAM十四讲学习笔记——第十三讲 实践:设计SLAM系统
1.如何运行示例代码 首先是如何运行示例代码,这里遇到了很多问题: (1)首先要下载Kitti数据集,并在config/default.yaml文件内修改路径. (2)安装Glog.GTest.GFl ...
- 孙鑫VC++讲座笔记-(6)菜单编程
1,弹出菜单(Pop-up)是不能用来作命令响应的. 2,MFC中菜单项消息如果利用ClassWizard来对菜单项消息分别在上述四个类中进行响应,则菜单消息传递顺序:View类--Doc类--CMa ...
- 孙鑫MFC学习笔记1.Windows应用程序运行机理
1.MSG结构 hwnd:窗口句柄 message:消息类型 wParam & lParam:消息的附加信息(比如键值) time:消息被投递的时间 tip:typedef的作用是从变量类型区 ...
- mfc编程 孙鑫_孙鑫VC++视频教程笔记-(3)MFC程序框架的剖析 附1-SDI程序流程图
1,寻找WinMain人口: 在安装目录下找到MFC文件夹下的SRC文件夹,SRC下是MFC源代码. 路径:MFC|SRC|APPMODUL.CPP: _tWinMain(HINSTANCE hIns ...
- 线性代数学习笔记——第十三讲——行列式的定义
1. 一.二.三阶行列式的定义 2. n阶行列式任意元素的余子式与代数余子式的定义 3. n阶行列式的定义 4. 行列式按第一行的展开式 5. 二.三阶行列式适合对角线法则(四阶及四阶以上的行列式一般 ...
最新文章
- 一网打尽数据结构中图相关的算法
- linux zabbix_agentd命令 监控服务器参数 简介
- python学习--for循环详解
- LeetCode-链表-面试题 02.07. 链表相交
- Mysql 常用函数汇总
- 用了fastapi还需要nginx_nginx 与 fastdfs 的配置过程,已经越过了许多坑,我跪着进入了欢迎页面。。。...
- 【C++深度剖析教程29】C++对象模型分析下
- Mybatis源码分析之(三)mapper接口底层原理(为什么不用写方法体就能访问到数据库)
- 如何查阅资料?(找数据集,文献...)
- xlrd合并单元格的读取的注意事项
- SpringCloud大项目最快速的排查问题的思路
- HelloDjango 第 08 篇:开发博客文章详情页
- java中连接数据库
- 2020 数学建模国赛 B 题参考思路
- sz命令获取文件到本地路径设置
- 智能算法——蚁群算法
- ue4 本地化要点详解
- 量子计算机的算力是多少,量子计算机算力有多强?可能是无数平行宇宙中的计算机在同时计算...
- 算法第一次作业(2.帐篷问题)
- 如何运营一个软件微社区
热门文章
- JumpList中Recent类别和自定义类型
- Java文件的写入与读出
- JVM、JRE、JDK、java ee sdk with jdk四者的区别
- .NET应用服务器(中间件)来到
- 近些年deep learning在推荐系统的应用
- .net通用CMS快速开发框架——问题:Dapper通用的多表联合分页查询怎么破?
- 基于16QAM调制的OFDM系统仿真实现
- Redis集合 安装 哨兵集群 安全配置 redis持久化
- 手把手教你进行R语言的安装及安装过程中相关问题解决方案...
- python常用的十进制、16进制、字符串、字节串之间的转换