2011-10-27 48 views
18

因此,我已經重新安裝了directx11幾次,甚至去了微軟的網站,並得到了包含所有直接x cabinet文件的SDK包。任何人有任何想法,爲什麼我不斷得到這個錯誤呢?我知道它爲什麼這麼說,但更多地尋找解決方案。d3dx11.h失蹤?

1> C:\用戶\沃恩\文檔\ Visual工作室 2010 \項目\ myfirstapp \ myfirstapp \ main.cpp中(5):致命錯誤C1083: 無法打開包含文件: 'd3dx11.h' :沒有這樣的文件或目錄

+1

您是否將必要的文件夾添加到包含目錄中? – FailedDev

回答

28

這就是你需要在VS 2010中做什麼(它看起來在VS 2008中有點不同更早):

轉到項目屬性|配置屬性| VC++目錄。通過添加DirectX頭文件的路徑來編輯名爲Include Directories的行。至於2010年6月SDK可能是這樣的:

32位WIN:C:\ Program Files文件\微軟的DirectX SDK(2010年6月)\包含

64位WIN:C:\ Program Files文件(86) \微軟DirectX SDK(2010年6月)\包括

接下來,你最有可能得到一個鏈接器的錯誤(缺少.lib文件)。只需去你的項目的屬性|配置屬性|再次VC++目錄,但這次編輯庫目錄,並添加到以下一個路徑:

32位WIN:C:\ Program Files文件\微軟的DirectX SDK(2010年6月)\ LIB \ x86的

64位Win:C:\ Program Files文件(x86)\ Microsoft DirectX SDK(2010年6月)\ Lib \ x64

如果您安裝了其他版本的SDK或將其安裝到非默認目錄,請相應地更改給定的路徑。還要確保你添加了d3d11.lib(也可能是d3dx11.lib)到Linker |額外的依賴關係。

一般規則是,只要您的IDE需要知道在哪裏可以找到它們,就可以隨時使用#include <>文件。 VC++目錄是在Visual Studio中執行此操作的一種方法。但單獨包含頭文件(大多數情況下)是不夠的 - 您需要告訴鏈接程序在哪裏查找由這些頭文件描述的預編譯二進制文件。這是通過向庫目錄添加第二個路徑來完成的。

+0

好吧,我要去試試看。我以爲我這樣做是因爲這是作業指示告訴我要做的事情,但我會仔細檢查一切。 –

+0

感謝您的幫助,結果證明我錯過了DirectX11的VC++目錄和鏈接庫。 –

+3

如何使用環境變量%DXSDK_DIR%/ Include? – qdii

0

您必須確保您獲得最新的DirectX SDK。它有頭文件。如果你所有的都是櫥櫃文件,你得到了錯誤的SDK。

+0

我下載了它,它仍然告訴我它無法找到它?如果我將請求訪問該文件的行註釋掉,但它使我也註釋掉d3dx10.h文件,並且它加載正常。 –

+0

您可以在系統中搜索d3dx * .h來查看正確的頭文件安裝到哪裏? –

+0

即使重新安裝4次後也沒有彈出。 –

0

在我的情況下,DX12,我缺少d3dx12.h

this MSDN頁。

萬一頁面移動時,相關線路似乎是

d3dx12.h可分開的Direct3D 12頭,您可以導航到任何一個源文件的下載d3dx12.h Direct3D 12項目GitHub/Microsoft/DirectX-Graphics-Samples

+4

DirectX SDK是遺留的,而D3DX9,D3DX10和D3DX11已棄用。有關替換列表,請參閱[無D3DX的生活](https://blogs.msdn.microsoft.com/chuckw/2013/08/20/living-without-d3dx/)。 D3DX12不是Windows SDK或DirectX SDK的一部分。它只是被複制到你的項目中,它被提供在[GitHub](https://github.com/Microsoft/DirectX-Graphics-Samples/blob/master/Templates/DirectX12App/Common/d3dx12.h)下MIT許可證。它也包含在各種DirectX 12 VS模板中,包括[這些](https://github.com/walbourn/directx-vs-templates/wiki)。 –