Visual C中称为RGB的类

weixin_38066498 2019-09-12 12:35:44
我正在开发一个跨平台的开源项目.到目前为止,在命名空间rgb中有一个名为RGB的类并不是一个问题.现在我发现Microsoft编译器(VS 2010)存在一个奇怪的问题. 当我声明该类时,预处理器会抱怨宏被滥用.我知道在WinGdi.h中定义了一个粗糙的RGB宏.谁发现这是合理的,但无论如何.所以在rgb.h的顶部我做: #undef RGB namespace rgb { class RGB : public shell::Command { public: RGB(); }; } 这解决了编译rgb.cpp对象的问题.但是,在另一个地方,我想实例化一个对象: #include "rgb.h" namespace shell { Modules::Modules() { Command *c; c = new rgb::RGB(); // errors at this line } } 我收到错误消息:错误19错误C2589:'(‘:’::’右侧的非法令牌错误20错误C2059:语法错误:’::’在所表示的线上 我该如何解决这个问题?
...全文
79 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38068389 2019-09-12
  • 打赏
  • 举报
回复
>在源中重命名RGB.>包装WinGdi.h.创建文件MyWinGdi.h和MyWinGdi.cpp.包含MyWinGdi.cpp中的WinGdi.h.对于WinGdi.h中需要的任何函数/定义,在MyWinGdi.h中定义它们并在MyWinGdi.cpp中声明它们以调用实际函数.这对常数来说可能很棘手.>获取WinGdi.h的副本并将其放入源代码中,以便在SDK之前选择它作为include.通过注释RGB宏来破解它.>帮助诊断问题.使用命令行选项在预处理后生成源文件,并查看如何在您的错误周围扩展宏.>投票我刚刚加上uservoice的帖子,并尝试让微软修复他们的标题.http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6656174-have-a-version-of-windows-h-that-doesn-t-define-ma

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧