MinGW与COLORREF和RGB拧紧

我正在尝试使用MinGW构build第三方开源项目。 其中一个依赖是wxWidgets。 当我尝试从MSYS的项目,我得到一个编译器错误

/MinGW/msys/1.0/local/include/wx-2.8/wx/msw/private.h

 In function 'COLORREF wxColourToRGB(const wxColour&)': error: cannot convert 'RGB' to 'COLORREF {aka long unsigned int}' in return 

这是有点奇怪的, 根据微软的RGBmacros返回一个COLORREF

实际上,在H:\ MinGW \ include中find包含以下代码的wingdi.h

 #define RGB(r,g,b) ((COLORREF)((BYTE)(r)|((BYTE)(g) << 8)|((BYTE)(b) << 16))) 

什么样的事情会导致这个错误? 有没有什么办法可以检查是否包含在wingdi.h中的COLORREF和RGB,而不是其他地方? 这甚至值得检查吗?

产品规格

  • GCC版本4.7.2
  • wxWidgets版本2.8.12

(我是C ++和MinGW的新手,但通常是计算机和编程知识)

尝试使用-E预处理源文件并检查宏扩展的实际情况,或者是否重新定义宏。

包含头部依赖关系后,预处理的源代码无疑将会非常冗长。 你的文本编辑器的搜索功能, grepfindstr在这里是你的朋友。