请高手指点:程序运行时出现Debug Assertion Failed!错误

dhbuser 2008-04-10 09:38:44
错误描述:Debug Assertion Failed!
Program: E:\studentsys\Debug\studentsys.exe
File:dlgdata.cpp
Line:308


出错原因:修改并删除了一些控件
问题原因:没有找到这个相应控件类型。一般有三种情况:一是控件ID不存在,二是控件未创建,三是控件的类型不对,但我在DoDataExchange函数中将对应的DDX_语句也进行了相应的修改,应该不存在上述问题。在BOOL CstudentsysDlg::OnInitDialog()函数中设断点发现在执行到CDialog::OnInitDialog();这句后出现上述错误。
请高手指点
...全文
340 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dhbuser 2008-04-10
  • 打赏
  • 举报
回复
你有没有适合初学者看的MFC方面的电子书???
dhbuser 2008-04-10
  • 打赏
  • 举报
回复
你说的对。改别人的代码的确是相当痛苦的。现在只能先学一下基础再做了。。。
iyranly 2008-04-10
  • 打赏
  • 举报
回复
拿来主义你要知道所以然才行,不能照搬!建议你先学一下MFC的机制,如果这点你不知道,就会一直阻碍你的前进,停留在一个比较低的层面。
dhbuser 2008-04-10
  • 打赏
  • 举报
回复
先画控件,再在里面添加了一些方法,所有的参数都是复制别人的代码,控件之间没有重的
#define IDM_ABOUTBOX 0x0010
#define IDD_ABOUTBOX 100
#define IDS_ABOUTBOX 101
#define IDD_studentsys_DIALOG 102
#define IDR_MAINFRAME 128
#define IDD_DIALOG1 129
#define IDC_LIST 1000
#define IDC_EDIT_number 1001
#define IDC_EDIT_name 1002
#define IDC_EDIT_chinese 1003
#define IDC_EDIT_sex 1003
#define IDC_EDIT_math 1004
#define IDC_EDIT_address 1004
#define IDC_EDIT_english 1005
#define IDC_EDIT_phone 1005
#define IDC_EDIT_physics 1006
#define IDC_EDIT_classes 1006
#define IDC_EDIT_chemistry 1007
#define IDC_EDIT_speciality 1007
#define IDC_BTN_add 1008
#define IDC_BTN_update 1009
#define IDC_BTN_delete 1010
#define IDC_RADIO_number 1011
#define IDC_RADIO_name 1012
#define IDC_EDIT_query 1015
#define IDC_BTN_query 1016
#define IDC_EDIT_polity 1017
#define IDC_EDIT_history 1018
#define IDC_EDIT_grade 1018
#define IDC_EDIT_geography 1019
#define IDC_EDIT_teacher 1019
#define IDC_EDIT_biology 1020
#define IDC_EDIT_all_grade 1023
#define IDC_EDIT_avg_grade 1024
#define IDC_BUTTON5 1027
#define IDC_BUTTON6 1031
#define IDC_COMBO 1032
#define IDC_BTN_about 1033
cnzdgs 2008-04-10
  • 打赏
  • 举报
回复
单步调试一下DoDataExchange和OnInitDialog函数,看看是使用什么控件时出错。
iyranly 2008-04-10
  • 打赏
  • 举报
回复
////////////////////////////////////////////////////////////////
Assert 断言处理
1、在VC安装目录下搜出错文件(也有可能是在你的工作目录下);
2、找到Assert提示的错误行,看看是在哪一个函数中发生的断言,判断这是由于哪一方面出现的断言(如控件的创建,等等);
3、在你的程序中设置断点,断点跟踪一下你的代码,直到找到和错误最接近的代码口;
4、修改你的代码。
////////////////////////////////////////////////////////////////
ouyh12345 2008-04-10
  • 打赏
  • 举报
回复
昨天加了个查询功能就出错了

能不能具体描述一下,怎样添加的?新的控件与老的控件,它们的id是否有重的?
dhbuser 2008-04-10
  • 打赏
  • 举报
回复
BEGIN_MESSAGE_MAP(CstudentsysDlg, CDialog)是照着改的,应该没问题
dhbuser 2008-04-10
  • 打赏
  • 举报
回复
我是初学MFC,这个是修改别人的源代码,之前已经改到了,昨天加了个查询功能就出错了。消息映射在哪里查啊?查了我又怎样判断有没有错误呢?
dhbuser 2008-04-10
  • 打赏
  • 举报
回复
在BOOL CstudentsysDlg::OnInitDialog()函数中设断点发现在执行到CDialog::OnInitDialog();这句后出现上述错误。
ouyh12345 2008-04-10
  • 打赏
  • 举报
回复
消息映射查了吗?
shakaqrj 2008-04-10
  • 打赏
  • 举报
回复
执行到哪一句??
tianloveyou 2008-04-10
  • 打赏
  • 举报
回复
看看资源头文件里的资源ID号的定义删除了没有

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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