问题描述是关于自己已经在类中定义了该函数或者变量但是却无法识别
这是为什么?
也许你在使用c++的时候会出现问题:has no member named ‘…’
意思就是类没有成员变量XXA
实际上类是具有成员变量XX的
问题的原因在于工程中定义的变量和系统头文件定义的宏冲突所致:处理类定义之前,发现了同名的宏,导致在编译之前(预处理阶段)把类成员当作宏做了宏体的替换。
解决方案有2个
1.
#ifdef XXX
#undef XXX
#endif
2.包含对象定义所在头文件于调用系统头文件之前.
这里的XXX在具体情况中可能为GetObject,LoadImage等等
本人具体实现用于第二个
例子如下
类似于我在类中已经定义了getid()但是编译器无法识别!
但是头文件更换顺序后
编译成功!
第一种类似
原文地址:点击打开链接