win8之后微软就不单独发行DirectX SDK,从vs2012开始,DX SDK都集成到Windows SDK中了。
直接可以从win sdk中找到,头文件具体位置在C:\Program Files (x86)\Windows Kits\8.0\Include
这个文件夹下有
um:非托管程序专用的头文件。
shared:非托管(um)与WinRT程序公用的头文件。
WinRT:WinRT程序专用的头文件。
这里指的在win sdk中就可以找到,即在vs2012编译器中直接调用#include <>就可以使用对应的DX SDK中的库, 而之前使用静态链接库直接连接DirectX sdk,由于静态链接库是直接在编译时将二进制编码直接与可执行编码链接,而加载这些静态库的头文件以使编译器知道头文件中声明的函数。而编译器的标准库中的实现其实都是一些静态库和动态库,即加载编译器库内的函数其实就是加载静态库。所以这里就直接可以在vs2012中加载这些DX SDK对应的头文件即可,编译器会自动去加载当前编译器版本的对应的静态库。
,在微软给的示例中 观察其项目属性,首先我们发现其为项目新加的静态库有d3d11.lib
d3dcompiler.lib
dxguid.lib
winmm.lib
comctl32.lib
而 每个程序都默认有的静态库有kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib
这些新加的静态库是由于其在该项目中调用了一些函数库里的函数,并include相应的头文件,而 默认
的静态库是每个程序都必须有的一些静态库。
编译器自带的静态库存放在C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\中
一般在程序中编写的形式如下:
#include <d3d11.h>
#pragma comment(lib,"d3d11.lib")
对于第二行的加载静态库,可以通过 项目属性 - 配置属性- 链接器 - 输入 - 附加依赖项 中添加,
让其有编译器对其进行加载静态库 取代 代码显示对齐加载静态库。
这样第一个问题已经差不多解决了,即在vs2012之后如何加载最新的dx sdk,至于这些sdk有哪些功能,要在之后的学习中进一步了解。