“debug assertion failed f:\dd\vctools\vb7libs\ship\atlmfc\src\mfc\dlgdata.cpp line 40”运行时错误的解决方法

近期在优化一个用MFC开发的应用程序时,修改和删除了项目中资源文件对话框的一些控件,修改后可以编译生成,但是运行的时候发生了一个非常莫名其妙的错误,“debug assertion failed f:\dd\vctools\vb7libs\ship\atlmfc\src\mfc\dlgdata.cpp line 40”,程序奔溃退出。


网上一搜,很多人都遇到这个问题,原因是:

在对话框界面中删除了一些控件,但在DoDataExchange方法中没有删除这些控件对应的代码,将已经删除控件对应的宏映射代码删掉即可。
void CQzone2WPDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_USERLIST, m_userList); //删除这行类似的代码即可。
}

还有一种说法是资源文件resource.h中有控件的ID相同,将其改成不同也可。

这种错误如果是在没有互联网的时候,不知道要耗费多少程序员的时间和精力,“f:\dd\vctools\vb7libs\ship\atlmfc\src\mfc\dlgdata.cpp”文件所对应的文件和路径在计算中都不存在,前不着村,后不着店,很难调试。幸好有了互联网,往搜索上敲入错误信息,回车,解决方法就能顺藤摸瓜的快速找到。互联网,伟大!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值