将事件处理程序添加到任何控件都会导致 Visual Studio 中出错

Adding an event handler to any Controls causes error in Visual Studio

本文关键字:Visual Studio 出错 程序 事件处理 添加 控件 任何      更新时间:2023-10-16

我有一个 MFC 应用程序,其中包含单个 exe 加载多个 dll,在我的一个 dll 项目中,我正在创建一个对话框,我想添加一个事件侦听器,以便在更改复选框时。当我使用资源编辑器添加事件处理程序时,它会向我的头文件添加一个定义,在我的 cpp 文件中添加一个函数,并在

BEGIN_MESSAGE_MAP(CHardwareListing, CDialog)
END_MESSAGE_MAP()

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

ON_BN_CLICKED(IDC_CHECK1, &CHardwareListing::OnBnClickedCheck1)

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

"错误,预期表达式"

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

指针:

  • 确保类在标头中具有DECLARE_MESSAGE_MAP
  • 确保BEGIN_MESSAGE_MAP中的基/派生类正确
  • 确保CHardwareListing::OnBnClickedCheck1确实存在且类型正确。还要检查IDC_CHECK1是否有效。
  • 确保 resource.h 包含在 CPP 或标头中。
此外,如果此警告/错误

是由智能感知报告的,而不是由实际的C++编译器报告的,请忽略此警告/错误

我找到了此错误的修复程序,出于某种原因,Visual Studio在导致问题的"CHardwareListing"参数之前放置了一个"&"字符。仍然不确定为什么首先插入该字符。