转载请注明出处:http://www.cnblogs.com/Ray1024
一、概述
在D3D11学习的这个系列中,单独写一篇文章来记录自己学习过程中遇到的问题及最后的解决方法。
这篇文章的目的主要是把自己在学习D3D11过程中遇到的问题整理下来,方便自己以后查看,也帮助一些新手更快地解决问题。
二、问题与解决方法
2.1 安装DirectX SDK过程中出现安装错误,Error Code:s1023?
问题如图:
问题分析:
其实根本原因在于Microsoft Visual C++ 2010 Redistributable这个组件,打开控制面板>程序和功能面板,你会看到"Microsoft Visual C++ 2010 x86 Redistributable - 1010.0.40219"这一项组件。如下图:
而June 2010 DirectX SDK需要安装“Microsoft Visual C++ 2010 x86 Redistributable - 1010.0.30319”版本的组件,计算机中已经存在的此组件的新版本,所以安装出现s1023错误。
解决步骤:
(1)要解决这个问题,在June 2010 DirectX SDK安装之前,卸载计算机中存在的所有版本的Visual C++ 2010 Redistributable组件。
可以在程序和功能面板中直接卸载。或者,也可以在命令行中运行以下命令卸载:
MsiExec.exe /passive /X{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7}
MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7}
(2)卸载完上面的组件之后,就可以安装June 2010 DirectX SDK了。
(3)如果你需要新版本的Visual C++ 2010 Redistributable组件,也可以再安装回去。
2.2 程序调试运行会出现错误:d3d11CreateDevice Failed?
问题分析:
创建设备和上下文的函数为D3D11CreateDevice,这个函数的参数Flags表示可选的设备创建标志值。当以release模式生成程序时,该参数通常设为0(无附加标志值);当以debug模式生成程序时,该参数应设为:D3D11_CREATE_DEVICE_DEBUG,用来激活调试层。
激活了调试层之后,Direct3D会向VC++的输出窗口发送调试信息。
但是想要使用调试层这个工具,我们需要知道:调试层这个工具是存在于Graphics Tools这个组件中的。我们必须先安装Graphics Tools这个组件。
解决方法:
方法1. Win10系统安装Graphics Tools
打开 开始菜单>设置>系统>应用和功能>管理可选功能>添加功能,找到Graphics Tools选择就可以了(中文系统中的名字是图形工具)。
方法2. Visual Studio 2015
安装vs2015,也会自动安装Graphics Tools这个组件的。
方法3. Visual Studio 2013
Visual Studio 2013的update5版本将自动的在Windows 10上配置Graphics Tools可选功能。
方法4:
如果你不想使用调试层这个工具,直接在D3D11CreateDevice函数第四个参数设置为0。
三、结语
另外,这篇文章会不定时更新。把自己学习过程中遇到的一些新问题也会加入到这里。
希望这篇文章可以帮助到大家。