程序编译通过,但运行的时候没有弹出程序界面,直接蹦出一个断言错误的对话框提示
"Debug Assertion Failed File:dlgdata.cpp Line 43"
问题原因:没有找到相应控件类型
一般有三种情况:一是控件ID不存在,二是控件未创建,三是控件的类型不对.
例如:
- void CTransDlgBar::DoDataExchange(CDataExchange* pDX)
- {
- // CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CTransDlgBar)
- DDX_Control(pDX, IDC_EDIT_T17, m_edtRequest);
- //此控件已经不存在,此句人工删除 DDX_Control(pDX, IDC_EDIT3, m_edtMyZero);
- //此控件已经不存在,词句人工删除 DDX_Control(pDX, IDC_EDIT1, m_edtMxZero);
- DDX_Control(pDX, IDC_CHECK1, m_Disp2D);
- DDX_Control(pDX, IDC_BTN_TRANS, m_btnTrans);
- DDX_Control(pDX, IDC_EDIT2, m_EdtInBuf);
- DDX_Control(pDX, IDC_COMBO2, m_DeviceName);
- //}}AFX_DATA_MAP
- for(int i=0; i<20; i++)
- {
- m_edtTxd[i] = (CEdit *)GetDlgItem(IDC_EDIT_T1 + i);
- }
- }