MFC 对话框应用程序中的错误

Posted

技术标签:

【中文标题】MFC 对话框应用程序中的错误【英文标题】:Errors in MFC dialog application 【发布时间】:2014-11-02 05:31:19 【问题描述】:

我正在学习 MFC 对话框应用程序,作为第一次尝试,我学习了教程 explained here

我正在使用 Visual Studio 2010,但是当我运行它时,我得到错误 error C2664: 'DDX_Control' : cannot convert parameter 3 from 'CString' to 'CWnd &' 1>\documents\visual studio 2010\projects\mfc\mfc\mfcdlg.cpp(75): error C2065: 'IDC_BUTTON1' : undeclared identifier 1>\documents\visual studio 2010\projects\mfc\mfc\mfcdlg.cpp(75): error C2065: 'IDC_BUTTON1' : undeclared identifier 1>\documents\visual studio 2010\projects\mfc\mfc\mfcdlg.cpp(76): error C2065: 'IDC_COMBO1' : undeclared identifier 1>\documents\visual studio 2010\projects\mfc\mfc\mfcdlg.cpp(76): error C2065: 'IDC_COMBO1' : undeclared identifier 1>

我完全按照笔记中的说明做了。

void CMFCDlg::DoDataExchange(CDataExchange* pDX)

    CDialogEx::DoDataExchange(pDX);
    DDX_Text(pDX, IDC_FIRSTNAME, m_strFirstName);
    DDX_Text(pDX, IDC_LASTNAME, m_strLastName);
    DDX_Control(pDX, IDC_TITLE, m_strTiltle);
    DDX_LBString(pDX, IDC_NAMELIST, m_strFullName);
    DDX_Control(pDX, IDC_NAMELIST, m_NameList);
  

因为这是我第一次在 MFC 应用程序中做任何事情,所以我不知道出了什么问题。有人可以帮我理解什么问题吗?

【问题讨论】:

由于您是 mfc 和 c++ 的新手,您可以在 msdn 上查看有关您发现的错误的更多信息,您可以查看这些链接 msdn.microsoft.com/en-us/library/vstudio/…msdn.microsoft.com/en-us/library/vstudio/… 了解有关您的错误的更多信息 您应该向我们展示您作为 DDX_ 函数的第三个参数传递的变量的声明。 您是否根据表 2 重命名了控件?如果是,请将带有错误的 mfcdlg.cpp loines 更改为控件的当前 ID,这样您就可以摆脱“未声明的标识符”错误。 【参考方案1】:

我不太确定您是否正确执行了教程中的步骤,如果您遇到过这些错误,您应该不会遇到这些错误...

C2664 错误:将 DDX_Control(pDX, IDC_TITLE, m_strTiltle); 更改为 DDX_Text(pDX, IDC_TITLE, m_strTiltle);

C2065 错误:本教程不包含IDC_BUTTON1 / IDC_COMBO1,它提到了一个IDC_ADD 按钮和一个IDC_TITLE 组合框。

【讨论】:

【参考方案2】:

m_strTitleCString 类型的值,在您的代码中 m_strTitle 被定义为控件。其余的,你可能有重命名或删除标识符,使用适当的。

【讨论】:

以上是关于MFC 对话框应用程序中的错误的主要内容,如果未能解决你的问题,请参考以下文章

MFC 对话框错误中的 C++ 多线程

如何从 MFC 错误“无法添加新成员”中恢复?

非 MFC 应用程序中的 MFC 对话框

MFC DoModal 对话框

MFC 程序中的对话框

非 MFC ATL 项目 (dll) 产生 MFC 相关错误