在我刚刚开始学习DirectX的时候,在配置环境上面花了好几天时间,下面就一步一步说一下这个非常非常烦人的过程。

首先,我去官网下载了DirectX11。

一.工具准备

1.DirectX11 SDK安装包

安装包选择微软官网下载,我选择的SDK版本是DXSDK_Jun10.exe。下载网址:https://www.microsoft.com/en-us/download/details.aspx?id=6812

按照安装提示安装完成。

注意DXSDK_Jun10.exe的安装过程中可能会出现安装错误,如下图:

DirectX11环境配置之美_DirectX学习

解决方法参考这里:http://www.cnblogs.com/Ray1024/p/6066549.html

其实就只要打开控制面板>程序和功能面板,你会看到"Microsoft Visual C++ 2010 x86 Redistributable - 1010.0.40219","Microsoft Visual C++ 2010 x64 Redistributable - 1010.0.40219"这两个东西,删了就好了。这个时候重新安装就成功了。

安装成功以后,我就开始了

1.编译Effect库

Effect框架是微软额外提供的一个程序框架,用于管理着色器程序和渲染状态的工具代码,使用户在程序中使用shader时与C++程序更方便地衔接。这个框架对于编写D3D程序来说不是必需的,好比D3DX库对于D3D程序来说也是可有可无的。但它毕竟大大方便了我们使用shader,在学习过程把心思放在要点上,因此在后面学习过程中将全程使用Effect框架。

在Direct3D 11中,Effects框架已从D3DX库中移除,你必须包含一个单独的头文件(d3dx11Effect.h),链接一个单独的库文件(Effects11.lib用于release生成,而Effects11D.lib用于debug生成)。

而且,在Direct3D 11中提供了effect库的完整源代码(DirectX SDK\Samples\C++\Effects11)。因此,你可以根据需要修改effect框架。本书中,我们只是使用、并不会修改effect框架。要使用这个库,首先需要生成Effects11项目的Release和Debug模式,用于获得Effects11.lib和Effects11D.lib文件。d3dx11Effect.h头文件可在DirectX SDK\Samples\C++\Effects11\Inc文件夹中找到。我们将d3dx11Effect.h放到DirectX SDK\Include目录下,Effects11D.lib和Effects11.lib文件都放在DirectX SDK\Lib\x86目录下,这样所有的项目文件都能共享这些文件。

在生成Effects11.lib的时候,碰到了很多问题,因为我用的是vs2017,后来搞了半天,最后,还是下载了vs2010.

不过还是出现了问题,首先报错是“VsInstallDir”问题,百度后找到下图位置把开始的好像是V141改为V100就可以了。

DirectX11环境配置之美_	DirectX_02

还有一个要注意的点就是你要选择下面箭头两个模式之一,才会有Linker。其他没有,我们要编译Effect库应该选择静态链接库。DirectX11环境配置之美_	DirectX_03

基础不牢,地动山摇。打好基础才能更好的学习。

在所有问题解决以后,我们就可以在下图位置看到我们需要的文件夹了

DirectX11环境配置之美_DirectX学习_04

在这里我发现还有一个问题,网上说里面(Effects11.lib用于release生成,而Effects11D.lib用于debug生成)。而我的debug里面生成的也是Effects11.lib。最后我把debug里面的名字改了一下。改为Effects11D.lib,网上说生成Effects11D.lib这样有问题的,应该是为了区分,而不是说在debug会生成这个名字,两个模式生成的名字一模一样。

好了,这个完成了。

二、创建一个win32项目

1.运行vs2010,打开菜单文件>新建>项目,如下图所示:

DirectX11环境配置之美_	DirectX_05

 

 

2.出现新建项目对话框后,选择Visual C++ > Win32选项,选择Win32项目,接下来输入项目名称并选择你想要创建的项目路径。如果为解决方案创建目录选项默认勾选了,把它取消勾选。点击确定按钮。如下图:

DirectX11环境配置之美_	DirectX_06

 

3.接下来弹出一个新的对话框窗口,如下图。这个对话框左边有两个选项:概述和应用程序设置。选择应用程序设置选项,对话框窗口出现应用程序设置页面。在应用程序类型中选择Windows应用程序,在附加选项中选择空项目。然后点击完成按钮。

DirectX11环境配置之美_DirectX学习_07

我们需要将Direct3D的库文件链接到我们的项目中。

项目Debug版本需要的库文件是:

     d3d11.lib;

     d3dx11d.lib;

     D3DCompiler.lib;

     Effects11d.lib; 

     dxerr.lib;

     dxgi.lib;

     dxguid.lib;

 

对于项目Release版本需要的库文件,和上面的Debug版本差不多,只需要把d3dx11d.lib和Effects11d.lib换成d3dx11.lib和Effects11.lib就可以了。

右键点击项目,选择菜单中的属性,弹出属性页,如下图。选择 配置属性>链接器>输入,在附加依赖项中添加上面提到的库文件,然后点击应用,确定退出。

DirectX11环境配置之美_	DirectX_08

 

 

四、设置头文件和库文件包含目录

我们在这一步中,需要让Visual Studio知道去哪里找DirectX的头文件和库文件。

右键点击项目,选择菜单中的属性,弹出属性页,如下图。选择 配置属性>VC++目录,在包含目录中添加DirectX头文件路径,在库目录中添加DirectX库文件路径,然后点击应用,确定退出。

(注:这个路径是取决于你把DirectX SDK安装到哪了,我安装在C:\Program Files (x86)\Microsoft DirectX SDK (June 2010),所以包含目录为C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include,库目录为C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86。)

DirectX11环境配置之美_DirectX学习_09

 

配置的这些属性在一个项目中无所谓,但是如果以后需要创建大量的DirectX项目,那么就需要一个一个地去配置这些属性,工作非常繁琐而且浪费时间。接下来我们介绍一个可以一劳永逸的方法:点击VS2010窗口顶部菜单 视图 > 属性管理器打开属性管理器窗口,双击属性管理器中的Microsoft.Cpp.Win32.user项目,就会打开一个和之前的属性窗口很像的窗口,如下图。将上面提到的链接库文件、设置包含路径的步骤都在这里完成,确定退出。那么我们以后创建的每个项目都会自动继承这些属性的,这将省去我们很多的时间。

DirectX11环境配置之美_	DirectX_10

 

我们的项目属性终于配置完成了