向任何控件添加事件处理程序会导致Visual Studio

时间:2016-06-08 18:15:15

标签: c++ visual-studio-2012 mfc

我有一个MFC应用程序,只有一个exe加载多个dll,在我的一个dll项目中我创建了一个对话框,并且我想添加一个事件监听器。复选框已更改。当我使用资源编辑器添加事件处理程序时,它会在我的头文件中添加一个定义,我的cpp文件中的一个函数,它在

之间添加一行
BEGIN_MESSAGE_MAP(CHardwareListing, CDialog)
END_MESSAGE_MAP()

代码的一部分,但是这行添加了,

ON_BN_CLICKED(IDC_CHECK1, &CHardwareListing::OnBnClickedCheck1)

导致一个我不知道如何解释的奇怪错误。

  

"错误,期待一个表达式"

我发现此错误的原因很奇怪是因为我有其他文件以相同的方式设置而没有此错误,实际上在添加事件处理程序后看起来几乎与此相同。有关导致此问题的原因以及如何解决问题的任何帮助?

2 个答案:

答案 0 :(得分:0)

指针:

  • 确保课程标题中包含DECLARE_MESSAGE_MAP
  • 确保BEGIN_MESSAGE_MAP中的基础/派生类正确
  • 确保CHardwareListing::OnBnClickedCheck1确实存在并且类型正确。另请检查IDC_CHECK1是否有效。
  • 确保resource.h包含在CPP或标题中。

另外,如果是Intellisense报告的话,请忽略此警告/错误,而不是实际的C ++编译器

答案 1 :(得分:0)

我找到了此错误的修复程序,由于某种原因,Visual Studio放置了一个"&" " CHardwareListing"之前的角色导致问题的论据。仍然不确定为什么首先插入这个角色。