2017-02-04 95 views
0

看来不管我尝试什么,我都不会得到directx 11应用程序的编译。我想:VS2015中的D3D11.h

  • 安装2010的DirectX月,并添加$(INCLUDEPATH); $(DXSDK_DIR)包括和$(LibraryPath); $(DXSDK_DIR)库\ 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说它不是这里

我在做什么错?

谢谢!

+0

https://msdn.microsoft.com/en-gb/library/windows/desktop/ee663275(v=vs.85).aspx –

+0

您是否建议我即使安装了SDK也没有SDK同时安装VS2015? – ChaoSXDemon

+0

实际上这样做是为了让我的VS2015无法找到d3d11.dll – ChaoSXDemon

回答

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") 
0

@MaverickATC就在一定程度上。 DirectX 2010年6月或Win8/Win10都可以使用。如果你需要d3d11.lib,你应该手动添加到投影属性中,你在你的SDK中有d3d11.lib(DirectX June 2010或Win8/Win10,你可以尝试搜索),并且你只需要添加一个名字“d3d11.lib “投影属性 - >链接 - >额外的依赖库。因为vs2015可以搜索你的环境路径来找到它。 dxgi.h用于获取DXGI API,是d3d11的低层,但不是必需的。所以不要d3dcompiler,它是用于编译d3d着色器的。

1

@MaverickATC今天我遇到了这个问题。 我无法构建一个示例DirectX(Tutorial01),并在'D3D11CreateDevice'上获取链接错误。我尝试通过Project - > Linker设置添加库'd3d11.lib',但得到同样的问题。 添加:

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

到我的代码开始解决了这个问题,并允许建立一个没有错误。

我觉得这很奇怪,因为在我看来,他们应该像@Vic指出的那样做同样的事情,但在这种情况下#pragma为我工作。