2016-09-14 6 views
-1

いくつかの外部.dllライブラリとともにUnreal Engine 4を使用しています。 "、私は使用していた.dllライブラリに付属のヘッダファイルに、しかし#dllヘッダーファイルの変数との競合を定義します。

#define PI     (3.1415926535897932f) 

:私はこのような「... 3.141592」「PIを」非現実的なエンジンのコアコードで定義されている問題が発生しました

protected: 
    SomeDataType PI; 

が、私はそれは非現実的なエンジンのコアファイルで使用されているため、定義編集カント:PIは、」クラスのprotectedメンバ変数の名前です。私はヘッダーファイルを編集することはできません、それはもはや基礎となる.dllに一致するとは思わない。

良い解決策はありますか?私は "PI"をローカルで定義することはできますか?

+4

'#undef PI'がローカルに役立つかもしれません。 –

答えて

1

これはマクロの問題であり、現代のC++プログラマができるだけ避けようとする理由です。

// my_unreal.h 
#include "unreal.h" 
#undef PI 

そして、あなたのコードのみ行う#include "my_unreal.h"の残りの部分ではなく、実際の非現実的なヘッダー:あなたのコードは直接Unrealのヘッダファイルが含まれていますが、のようなものを作るしないようにするために

一つの解決策はあります。そのため、他のコードが発生するまでにマクロが消えてしまいます。

関連する問題