xnamath.h 报错: 在标识符“XMConvertToRadians”的前面
如下报错
1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(159): error C2146: 语法错误: 缺少“;”(在标识符“XMConvertToRadians”的前面) 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(159): error C2433: “FLOAT”: 不允许在数据声明中使用“__forceinline” 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(159): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(159): error C2146: 语法错误: 缺少“)”(在标识符“fDegrees”的前面) 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(159): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(159): error C2059: 语法错误:“)” 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(159): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(159): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(160): error C2146: 语法错误: 缺少“;”(在标识符“XMConvertToDegrees”的前面) 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(160): error C2433: “FLOAT”: 不允许在数据声明中使用“__forceinline” 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(160): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(160): error C2086: “int FLOAT”: 重定义 1> d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(159) : 参见“FLOAT”的声明 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(160): error C2146: 语法错误: 缺少“)”(在标识符“fRadians”的前面) 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(160): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(160): error C2059: 语法错误:“)” 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(160): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>d:\program files\microsoft directx sdk (june 2010)\include\xnamath.h(160): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
解决方法
将 #include <xnamath.h>头文件放到
#include <D3D11.h>
#include <d3dx11.h>
#include <DxErr.h>
#include <D3DCompiler.h> // for shader flags
的后面即可。
本文解决在使用xnamath.h时遇到的多个编译错误,如语法错误和类型缺失等问题,通过调整包含文件的顺序,将xnamath.h置于D3D11.h等文件之后,成功解决了编译问题。
7473

被折叠的 条评论
为什么被折叠?



