也许你在使用c++的时候会出现问题:has no member named '...'
意思就是类没有成员变量XXA
实际上类是具有成员变量XX的
问题的原因在于工程中定义的变量和系统头文件定义的宏冲突所致:处理类定义之前,发现了同名的宏,导致在编译之前(预处理阶段)把类成员当作宏做了宏体的替换。
解决方案有2个
1.
意思就是类没有成员变量XXA
实际上类是具有成员变量XX的
问题的原因在于工程中定义的变量和系统头文件定义的宏冲突所致:处理类定义之前,发现了同名的宏,导致在编译之前(预处理阶段)把类成员当作宏做了宏体的替换。
解决方案有2个
1.
#ifdef XXX
#undef XXX
#endif
2.包含对象定义所在头文件于调用系统头文件之前.
#undef XXX
#endif
这里的XXX在具体情况中可能为GetObject,LoadImage等等
原文地址:点击打开链接
本文介绍了在C++编程中遇到的“hasnomembernamed”错误及其解决方法。该错误通常是由于宏定义与类成员变量同名导致,在预处理阶段发生冲突。文章提供了两种解决方案:一是取消宏定义;二是调整头文件的包含顺序。

3083

被折叠的 条评论
为什么被折叠?



