私はOpenGLを使用してマルチプラットフォームプロジェクトに取り掛かり、現在のコンテキストを照会するのに必要なところまで行きます。 私はを使用しました。を含むwglGetCurrentContext() windows.hはうまくいきました。一方名前が既に外部ライブラリに定義されているクラスを宣言するにはどうすればいいですか?
、Linuxでコンパイルしようとしたとき、私はglXGetCurrentContext()を使用して、内部Xlib.hを含むglx.h含むとだのXh
その起きます私のソースコードには、というステータスがあります。ステータスはですが、Xlibで同じと呼ばれるマクロがあります。つまり、#define Status int、Aha!どこにでも私のクラスを使用して以来大きな問題になっています。
この問題を解決するにはどうすればよいでしょうか?私が今考えているアイデアは、
- 私のクラスの名前を何か他のものに変更します...なぜですか?
- 使用
#pragma push_macro("Status")
は、あなたが他の勧告は、私に知らせている場合は、私は非常にそれをappreaciate#undef Status
- のOpenGLのコンテキストを照会するために、より堅牢でポータブルな方法を探す
が続きます。
リミットglx.hし、マクロ未定義に含まれるファイルの数。ヘッダーには含めないでください! –
一意のファイルに依存関係を移動できますか?あなたは '#undef Status'を安全にどこで実行できますか? – Jarod42