Directx11 xnamath.h 报错

时间:2022-11-30 08:38:29

xnamath.h 报错: 在标识符“XMConvertToRadians”的前面

如下报错

>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2146: 语法错误: 缺少“;”(在标识符“XMConvertToRadians”的前面)
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2433: “FLOAT”: 不允许在数据声明中使用“__forceinline”
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2146: 语法错误: 缺少“)”(在标识符“fDegrees”的前面)
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2059: 语法错误:“)”
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2146: 语法错误: 缺少“;”(在标识符“XMConvertToDegrees”的前面)
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2433: “FLOAT”: 不允许在数据声明中使用“__forceinline”
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2086: “int FLOAT”: 重定义
> d:\program files\microsoft directx sdk (june )\include\xnamath.h() : 参见“FLOAT”的声明
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2146: 语法错误: 缺少“)”(在标识符“fRadians”的前面)
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2059: 语法错误:“)”
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
>d:\program files\microsoft directx sdk (june )\include\xnamath.h(): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)

解决方法

将 #include <xnamath.h>头文件放到

#include <D3D11.h>
#include <d3dx11.h>
#include <DxErr.h>
#include <D3DCompiler.h> // for shader flags

的后面即可。