2017-02-04 41 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爲我工作。