delete可是用来删除非new的对象吗?我创建一个模态对话框,多次创建Domodal(),和销毁OnCancel()后。会出现死机的现象。
在模态对话框中我给一个静态文本框的添加了一个变量.h文件中。
public:
CTimeAdjust m_TimeAd;
和一个句柄
HANDLE m_HandleKey ;这两个变量是否需要delete啊?
在模态对话框中我给一个静态文本框的添加了一个变量.h文件中。
public:
CTimeAdjust m_TimeAd;
和一个句柄
HANDLE m_HandleKey ;这两个变量是否需要delete啊?
解决方案 »
- mfc(单文档)读取sql server的表的某一行某一列的数
- VC基础,创建窗口,不能显示结果
- ATL生成的简单DLL怎么运用到网页上
- windows关机时进程结束的先后顺序问题
- 【入门级问题】WaitForSingleObject(hndle,10000);的意思?
- 文件访问监控问题(急,在线等待)
- 怎么让warning C4786(identifier超过了255个字符)少出现
- 怎样把一个用VC写好的程序编译之后,在别的机子也能用?
- 线程的初学者,非常急,已贴好多次了,应该算写的很清楚的!!
- 在对话框中有多个滚动条时,如何判断是哪个滚动条在发送消息?
- 求教几个变量
- 关于DrawText的排版错位?
为了防止内存泄露,在必要的时候将其释放掉
此类中两个都是静态变量
不许这样delete
也不可以~
new创建的肯定要delete
句柄之类的,一般都有对应的释放函数的。
NEW和DELETE配对,动态申请和释放
HANDLE,一般用来标识对象,一般会有对应函数用来关闭句柄,比如Windows API打开的句柄使用CloseHandle等函数来关闭。如果没有提供对应函数或者没有明确说明需要显示关闭,则可以不用处理。
只有比如指针之类的成员变量可能需要在析构函数里用delete来释放它所指向的空间。
HANDLE m_HandleKey ;
这两个变量是在栈上,系统自动回收资源,不需要自己delete
如果是new出来的则在堆上 就需要delete掉
CTimeAdjust m_TimeAd;
HANDLE m_HandleKey ;这两个是类的成员变量,在类的对象销毁时自动释放。
不必也不要去delete。
delete一般与new配对使用,为动态申请与动态释放函数的参数值,局部变量的值等等,
存放在栈区,由编译器自动分配释放 new出来的变量在堆区,一般需要程序员自己来释放朱铭雷