我正在使用OpenGL在多平台项目中工作,并且我需要查询当前上下文。 在Windows中,我使用了 wglGetCurrentContext(),包括 windows.h ,工作正常。
另一方面,当尝试在linux中编译时,我使用 glXGetCurrentContext()并包括 glx.h ,内部包含 Xlib。 h 和 Xh
在我的源代码中,我有一个名为 Status 的类,但在Xlib中有一个名为相同的宏,即 #define Status int ,啊哈!因为我到处都在使用我的班级,所以现在很大的问题。
解决这个问题的最佳方法是什么?我现在想到的想法是
#pragma push_macro("Status")
后跟#undef Status
如果您有任何其他建议让我知道,我非常了解它。
答案 0 :(得分:3)
至少,您可以将glXGetCurrentContext()与其自己的翻译单元隔离开来:
myGlXGetCurrentContext.hpp
GLUint myGlXGetCurrentContext();
myGlXGetCurrentContext.cpp
#include<glx.h>
GLUint myGlXGetCurrentContext(){ return glXGetCurrentContext(); }
whatever.hpp
#include<myGlXGetCurrentContext.hpp>
...
答案 1 :(得分:-3)