今天编译Xfilter2.1的xfilter工程,出现了以下错误(这里只举出一个):
AclSub.cpp(54) : error C2440: “static_cast” : 无法从“void (__thiscall CAclSub::* )(UINT,LONG)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
在匹配目标类型的范围内没有具有该名称的函数
问题原因:
在AclSub.h定义的消息响应函数如下:afx_msg void OnAclQuery(UINT wParam, LONG lParam);
它的返回变量类型出现了不匹配。
方法:把 afx_msg void OnAclQuery(UINT wParam, LONG lParam);中的返回值类型 void 改为LRESULT,并且把AclSub.cpp文件中的 void CAclSub::OnAclQuery(UINT wParam, LONG lParam)改为LRESULT CAclSub::OnAclQuery(UINT wParam, LONG lParam)
并加入返回值语句:return TRUE;