milkyway的窝

最初想法的诞生地

 

避免运行时警告:Assertion Failed, WINCORE.CPP--Line 348,349,4199

      编译环境: EVC4.0+SP4
      由于在对话框中加入了自定义绘图控件,初始化与声明不合适导致此程序运行时出现三个ASSERT警告.
      解决办法参考: http://support.microsoft.com/kb/113421/en-us
      具体步骤: 1.在对话框资源里加入自定义控件, 设置属性,注意ID设为IDC_XXX的XXX和类名一致.
                        2.在对话框类中添加成员变量,特别注意应该放在以下字段中,而不是普通的程序变量中
                                 // Dialog Data
                                      //{{AFX_DATA(CVoltagecontrolDlg)
                                          enum { IDD = IDD_VOLTAGECONTROL_DIALOG };
                                          ....
                                        CLineChartCtrl  m_LineChart;     
                                        //}}AFX_DATA
                         3.在XXDlg.cpp中,不要重复关联控件ID和成员变量,在CDialog::DoDataExchange(pDX)里定义了DDX_Control(pDX, IDC_LineChartCtrl, m_LineChart);就不要在CDialog::OnInitDialog();再使用m_LineChart.SubclassDlgItem(IDC_LineChartCtrl, this);   与DDX重复关联了.


        主要错误在于: 混淆了程序变量与控件变量, 并且重复关联控件ID与变量.

posted on 2007-05-29 10:12 milkyway 阅读(4894) 评论(0)  编辑 收藏 引用 所属分类: evc


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

公告

随笔皆原创,文章乃转载. 欢迎留言!

常用链接

留言簿(37)

随笔分类(104)

随笔档案(101)

文章分类(51)

文章档案(53)

wince牛人

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜