Visual C中称为RGB的类
我正在开发一个跨平台的开源项目.到目前为止,在命名空间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:语法错误:’::’在所表示的线上
我该如何解决这个问题?