非模态对话框的指针释放的理解

文章探讨了非模态对话框在父子对话框结构中可能出现的内存泄漏问题,强调了指针释放的重要性。通过测试发现,直接在子对话框的OnDestroy()中使用`delete this`会导致错误,而应在父窗口的OnDestroy()中删除子对话框指针。同时,指针不能重复delete,而窗口可以多次调用DestroyWindow()。对于类内删除自身对象的情况,建议发送消息给父窗口处理。
摘要由CSDN通过智能技术生成

最近项目出现内存泄漏的问题,找到非模态对话框的指针释放问题,尤其是很多层对话框的释放问题。

每个CPP文件加上:

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

 

这段代码会检测到new出来的指针,没有释放的内存泄漏。

关于非模态对话框的指针释放的问题,找了一些资料,总结如下:就是父子对话框的时候,父对话框用指针创建一个对话框:

 

父对话框里

定义:Cdialog1* m_dialog1;//Cdialog1*是子对话框的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值