1.Windows平台类型冲突
INT,UINT,DWORD ,FLOAT,TRUE ,FALSE 宏冲突
#include "Windows/AllowWindowsPlatformTypes.h" 你的头文件 #include "Windows/HideWindowsPlatformTypes.h"
2.自增自减锁冲突
InterlockedIncrement,InterlockedDecrement类一些列锁冲突
#include "Windows/AllowWindowsPlatformAtomics.h" 你的头文件 #include "Windows/HideWindowsPlatformAtomics.h"
3.第三方库引起的警告
THIRD_PARTY_INCLUDES_START 你的头文件 THIRD_PARTY_INCLUDES_END
以上部分可以合并在一起,写成:
#if PLATFORM_WINDOWS #include "Windows/AllowWindowsPlatformTypes.h" #include "Windows/AllowWindowsPlatformAtomics.h" THIRD_PARTY_INCLUDES_START 你的头文件 THIRD_PARTY_INCLUDES_END #include "Windows/HideWindowsPlatformAtomics.h" #include "Windows/HideWindowsPlatformTypes.h" #endif
4.宏重定义的问题
CONSTEXPR,check,dynamic_cast,PI四个宏会出现重定义的问题,在包含头文件前使其无效化,然后恢复有效化就行了。
#if PLATFORM_WINDOWS #pragma push_macro("CONSTEXPR") #undef CONSTEXPR #pragma push_macro("check") #undef check #pragma push_macro("dynamic_cast") #undef dynamic_cast #pragma push_macro("PI") #undef PI 你的头文件 #pragma pop_macro("PI") #pragma pop_macro("check") #pragma pop_macro("dynamic_cast") #pragma pop_macro("CONSTEXPR") #endif