MFC 关于new出一个新对话框时,退出对话框内存泄漏的问题解决

Posted 付栋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC 关于new出一个新对话框时,退出对话框内存泄漏的问题解决相关的知识,希望对你有一定的参考价值。

问题:
在进行点击按钮弹出对话框时,我是用了new来生成一个新的对话框,但是在新对话框关闭的时候,经过检查发现,新对话框存在内存泄漏问题。
原因:
因为使用了new,但是当时没有找到地方进行delete,所以出现了delete。
解决:
在Oncancle()函数上添加:
 
DestroyWindow();
 delete this;
就可以解决这个问题,之前只在Oncancle()函数中加入了delete()函数,导致还是存在内存泄漏的提示,经过查资料,不光要delete,还要在delete前面加入销毁。
 
 
void C*****Dlg::OnBnClickedButton1()
{
       // TODO: 在??此??添???加??控?件t通???知a处?|理???程??序??代???码?
       C******Dlg *pDlg = new C*****Dlg;
       pDlg->Create(IDD_******R,this);
       pDlg->ShowWindow(SW_SHOW);
}

 

Oncancle()
 
void C******Dlg::OnBnClickedCancel()
{
       // TODO: 在??此??添???加??控?件t通???知a处?|理???程??序??代???码?
       CDialogEx::OnCancel();
       DestroyWindow();
       delete this;
 
}

 

以上是关于MFC 关于new出一个新对话框时,退出对话框内存泄漏的问题解决的主要内容,如果未能解决你的问题,请参考以下文章

MFC单击菜单项如何弹出对话框?

MFC基于对话框的程序

MFC中基于对话框的新文件

VS2010下MFC对话框程序使用CFileDialog对话框出现外部无法解析的密令,错误如下

拆分按钮控件在 MFC 对话框中消失

关于MFC主菜单和右键弹出菜单