初学MFC,在添加新对话框后,编译会产生下面两种警告:
warning C4005: “IDCANCEL”: 宏重定义
1>c:\program files (x86)\windows kits\8.0\include\um\winuser.h(10478) : 参见“IDCANCEL”的前一个定义
1>C:\Program Files (x86)\Windows Kits\8.0\Include\um\winuser.rh(1359): warning RC4005: 'IDCANCEL' : redefinition
双击查看,发现打开两个文件winuser.h和winuser.rh。这两个文件中都有对于IDCANCEL的定义:
#define IDCANCEL 2
上述两个各文件都是系统文件,不敢乱改,警告原因也不会出现在这里。
最后发现,Resource.h文件中有这样一个定义:#define IDCANCEL 1010
很明显,这就是凶手。注释或者删掉就OK啦!
如果有类似的宏重定义的问题,不防同样去里看一下,有可能会有帮助。
具体原因不是很清楚,毕竟是初学者,很多东西都得慢慢研究。
虽然不是什么大问题,但对刚开始的菜鸟还是很纠结的,写在这里,看能不能帮到大家。