PostNcDestroy 中Delete this 抛出异常!
时间:2011-12-04
来源:互联网
如题 ,肯能是什么原因呢?
在CSOCKETdlg 中NEW!
C/C++ code
void CSOCKETDlg::OnDblclkTree(NMHDR* pNMHDR, LRESULT* pResult) { if((Hitem!=NULL) && (Flage & TVHT_ONITEM | TVHT_ONITEMRIGHT)) { CTalkDialog *pDlg=new CTalkDialog(m_FileORTextSOCK,m_SockAddr); pDlg->Create(IDD_DIALOG1,this); pDlg->ShowWindow(SW_SHOW); } }
然后在:
C/C++ code
void CTalkDialog::PostNcDestroy() { // TODO: 在此添加专用代码和/或调用基类 delete this; CDialog::PostNcDestroy(); }
但是delete this;的时候抛出异常!
请问什么原因!
作者: qweewqpkn2009 发布时间: 2011-12-04
说的是: if( _AtlInterlockedDecrement( &nRefs ) <= 0 )
{
pStringMgr->Free( this );
}
pStringMgr->Free( this ); 这句异常!
作者: qweewqpkn2009 发布时间: 2011-12-04
void CTalkDialog::PostNcDestroy()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog::PostNcDestroy();
delete this; //最后删除
}
作者: gameslq 发布时间: 2011-12-04
改为
void CTalkDialog::PostNcDestroy()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog::PostNcDestroy();
delete this; //最后删除
}
+
作者: dingxz105090 发布时间: 2011-12-04
引用 2 楼 gameslq 的回复:
改为
void CTalkDialog::PostNcDestroy()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog::PostNcDestroy();
delete this; //最后删除
}
+
依然报错! 错误说明:0x50feaafc(mfc100ud.dll)处有未处理的异常:0xC0000005:读取位置0x0050fb8c时发生冲突!
作者: qweewqpkn2009 发布时间: 2011-12-04
作者: heksn 发布时间: 2011-12-04
作者: VisualEleven 发布时间: 2011-12-04
是不是你其他地方delete过了,检查一下
绝对没有, 不过 CTalkDialog *pDlg=new CTalkDialog(m_FileORTextSOCK,m_SockAddr); 这个构造函数是我自己写的一个构造函数! 自己写的构造函数 能不能DELETE this?
作者: qweewqpkn2009 发布时间: 2011-12-04
查查是不是CTalkDialog中做了其他的事情导致的
我就自己写了一个构造函数,然后就是创造线程发送数据! 其他事情是指的什么,太宽泛了吧!
作者: qweewqpkn2009 发布时间: 2011-12-04
查查是不是CTalkDialog中做了其他的事情导致的
对了 ,我还在CTalkDialog中还CReate了一个进度条控件和一个静态控件!
创建这两个控件的时候没用NEW出来的变量CREATE,而是用的类中定义的成员变量创建的!
作者: qweewqpkn2009 发布时间: 2011-12-04
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28