VS2015中的D3D11.h

时间:2017-02-04 00:37:09

标签: c++ visual-studio-2015 directx-11

似乎无论我尝试什么,我都不会得到directx 11应用程序来编译。我试过了:

  • 安装DirectX 2010年6月并添加$(IncludePath); $(DXSDK_DIR)包含和$(LibraryPath); $(DXSDK_DIR)Lib \ x86到VS2015包含目录和库目录,它找到了d3d11.h但是说d3d11。 lib不在那里。 (Source
  • 尝试删除DirectX 2010年6月并依赖于Win10' C:\ Program Files(x86)\ Windows Kits \ 10 \ Include \ 10.0.14393.0 \ um")d3d11.h。 .. VS2015说它不在这里

我做错了什么?

谢谢!

3 个答案:

答案 0 :(得分:1)

@MaverickATC我今天遇到了这个问题。 我无法构建其中一个示例DirectX(Tutorial01),并且在D3D11CreateDevice' D3D11CreateDevice'我试图添加库' d3d11.lib'通过项目 - >链接器设置但遇到了同样的问题。 添加:

#pragma comment(lib, "d3d11.lib")

到我的代码的开头解决了问题并允许构建没有错误。

我觉得这很奇怪,因为在我看来他们应该做同样的事情,正如@Vic所指出的那样,但在这个例子中,#pragma为我工作。

答案 1 :(得分:0)

如果您使用的是Windows SDK,还应该包含dxgi头和库,以及d3dcompiler头和库来编译着色器:

#include <d3d11.h>
#include <dxgi.h>
#include <d3dcompiler.h>
#pragma comment(lib, "d3d11.lib")
#pragma comment(lib, "dxgi.lib")
#pragma comment(lib, "d3dcompiler.lib")

答案 2 :(得分:0)

@MaverickATC在某种程度上是正确的。 DirectX 2010年6月或Win8 / Win10都有效。如果你需要d3d11.lib,你应该手动添加到投影属性,你在你的Sdk(DirectX 2010年6月或Win8 / Win10,你可以尝试搜索)中有d3d11.lib,你只需添加一个名称&#34; d3d11.lib&#34;投影属性 - &gt;链接 - &gt;额外依赖lib。因为vs2015可以搜索你的环境路径来找到它。 dxgi.h用于获取DXGI API,是d3d11的低层,但它没有必要。所以不要使用d3dcompiler,这是用于编译d3d着色器。