这个怎么delete掉??

sstower 2006-09-27 12:51:26
dialog 有一个control变量:
class CExampleDlg : public CDialog
{
public:
CComboBox m_cbAPMode; //控件邦定的变量
... ...

}
DlSNMPRequest2Edits *APModeRequest;
void CExampleDlg::OnBtnTest()
{
APModeRequest=new DlSNMPRequest2Edits(this);
APModeRequest->AssignEdit(0,&m_cbAPMode);
... ...
}
void CExampleDlg::OnDestroy()
{
CDialog::OnDestroy();

delete APModeRequest; //这里删除会出异常

}
//这是一个dll导出的类:
class DLSNMPEXPORT DlSNMPRequest2Edits
{
CComboBox *pCombox;
... ...
}
DlSNMPRequest2Edits::AssignEdit(int i,CComboBox *aEdit)
{
... ...
pCombox=new CSNMPComboBox;
pCombox=(CSNMPComboBox*)aEdit;
... ....
}
DlSNMPRequest2Edits::~DlSNMPRequest2Edits()
{
if(pCombox) delete pCombox;
}

怎样删出才算安全的??
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowbirdfly 2006-09-27
  • 打赏
  • 举报
回复
delete APModeRequest; //这里删除会出异常
那一般都是判断该值是否为空,不为空再调用删除。
那你看看该值如何。
sstower 2006-09-27
  • 打赏
  • 举报
回复
是这样的:
CComboBox m_cbAPMode
Control变量,dialog本身在destroy会删掉,但我这里:
pCombox=new CComboBox;
pCombox=(CComboBox*)aEdit;

dll本身new了一个CComboBox,本来是想delete new的combobox,但实际上把dialog的m_cbAPMode删掉了,但是dialog的m_cbAPMode不是dll生成的,所以就出问题了
脆弱的肠胃 2006-09-27
  • 打赏
  • 举报
回复
同意各位意见
zhucde 2006-09-27
  • 打赏
  • 举报
回复
二楼的方法应该没有问题,先判断它是否已经为空
zx_sanjin 2006-09-27
  • 打赏
  • 举报
回复
代码太少,看不出来,一定是你的程序某个地方进行了非法操作,破坏了APModeReques的地址
-----------------------------------------------
MyCSDN 免费版 - http://community.csdn.net/Expert/TopicView1.asp?id=4608614
snowbirdfly 2006-09-27
  • 打赏
  • 举报
回复
if(!APModeRequest)
{
delete APModeRequest;//防止出现野指针。
APModeRequest = NULL;
}

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧