Wind is Wild

日常体会,以及笔记

 

VS2015环境下的提示语法错误:编号的预期结尾后有多余文本(extra text after expected end of number)

当工程中有扩展CListCtrl的类代码,并且有自绘单元格的操作,

ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnNMCustomdraw)

编辑器语法智能提示就会对这个宏定义报错,似乎只有在vs2015环境(vc++ 2015版本)才有问题。

解决方法是新增一个宏定义,覆盖默认的宏定义,如下:

#if (_MSC_VER==1900)
#define ON_NOTIFY_REFLECT(wNotifyCode, memberFxn) \
{ WM_NOTIFY + WM_REFLECT_BASE, (WORD)(int)wNotifyCode, 0, 0, AfxSigNotify_b, \
(AFX_PMSG) \
(static_cast<void (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*) > \
(memberFxn)) },
#endif

注意,即使你不增加这段代码,编译实际是正常通过的,程序也能用,只不过提示错误很不舒服,一改了之。

posted on 2019-04-26 16:08  ifdef  阅读(4363)  评论(0编辑  收藏  举报

导航