directx11编程中遇到的错误及解决方法

(2016-05-10)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

的后面即可

 

(2016-06-17)windows10中创建Direct3D11设备出现0x887a002d错误,提示应用程序请求的操作依赖于已缺失或不匹配的 SDK 组件

最近把系统中win7升级到了win10,在运行之前的dx11demo时发现弹出的都是空白窗口,调试时发现在代码中调用D3D11CreateDevice函数返回0x887a002d, 错误消息是"应用程序请求的操作依赖于已缺失或不匹配的 SDK 组件。

解决方法:原来windows10没有自带图形调试器, 调用D3D11CreateDevice函数时Flags参数包含D3D11_CREATE_DEVICE_DEBUG就会创建失败.

对于 Windows 10,图形诊断工具现已作为 Windows 内的可选功能提供。若要使用在运行时和 Visual Studio 中提供的图形诊断功能来开发 DirectX 应用或游戏,请安装可选“图形工具”功能:

  1. 转到“设置”、依次选择“系统”和“可选功能”,然后单击“添加功能”
  2. 在“添加功能”列表中,单击“图形工具”

微软官方说明:https://msdn.microsoft.com/library/windows/apps/dn914047.aspx

转载于:https://www.cnblogs.com/zhangbaochong/p/5593584.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于DirectX 11的开发教程,以下是一些建议的资源和步骤: 1. 官方文档:首先,你可以参考Microsoft官方提供的DirectX开发文档。他们提供了详细的教程和示例代码,涵盖了DirectX 11的各个方面。你可以在Microsoft的官方网站上找到这些文档。 2. 学习基础知识:在开始使用DirectX 11之前,建议你先学习一些基础知识,比如图形学和着色器编程。了解基本的图形学概念和渲染管线的工作原理对理解DirectX 11的开发非常有帮助。 3. 使用工具:为了使用DirectX 11进行开发,你需要安装DirectX SDK或者Windows SDK。这些工具包括编译器、调试器和其他必要的辅助工具,帮助你开发DirectX 11应用程序。 4. 编写代码:开始编写自己的DirectX 11应用程序。你可以使用C++来编写代码,并使用DirectX API来创建窗口、渲染图形和处理用户输入等操作。在编写代码时,可以参考官方文档的示例代码和教程。 5. 调试和优化:一旦你的应用程序运行起来,你可能会遇到一些问题,比如性能瓶颈或者渲染错误。在这种情况下,你可以使用调试工具来诊断和解决这些问题。另外,优化你的代码也是很重要的,以提高应用程序的性能和效率。 6. 参考其他资源:除了官方文档之外,还有一些其他资源可以帮助你学习和理解DirectX 11的开发。比如书籍、在线教程、论坛和博客等等。你可以根据自己的需求和学习风格选择适合自己的资源。 希望以上建议对你有所帮助!祝你在DirectX 11开发取得成功!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值