CFormView 中使用 OLE (或 .net) 控件后发生内存泄漏
2008-09-08 18:35:16 旧日重来
最近研究了一下 Webbrowser 控件,写了个模仿 CHtmlView 的类,继承 CFormView 创建控件,用的还挺方便。就是每创建一个 view 就会在 viewform.cpp 里产生一个内存泄漏。对照 memory leak 的记录提示跟过去看看,发现是在 viewform.cpp 文件
_AFX_OCC_DIALOG_INFO *pOccDialogInfo = new _AFX_OCC_DIALOG_INFO;
这里 new 的东东没释放。OLE 的东东不甚懂,google 了一圈,发现有不少同病相怜的哥们儿,一般都是加了个 .net 的控件然后内存泄漏的,和我代码的共同点都是在 FormView 中添加了 OLE 控件。可惜网上的都没有找出解决方案……
最后瞎试了半天,发现稍稍改一下代码就可以了……
把自己的 view 的构造函数,由:
CXXView::CXXView() : CFormView(CXXView::IDD) // 产生内存泄漏的行 by 旧日重来 { }
改成
CXXView::CXXView() : CFormView((LPCTSTR) NULL) { }
即可。不知是甚么原因,把解决方法记录下来以备不时之需,呵呵
查看:原文地址;来源:live.aulddays.com。
注意:本站所有文章除特别说明外均为原创,版权所有,转载请务必以超链接方式注明作者出处,并禁止用作商业用途