對於Win10系統的大多數用戶來講,能夠直接編譯本教程對應的項目並運行。但也有部分用戶因爲某些緣由可能會出現沒法編譯的狀況。html
DirectX11 With Windows SDK完整目錄windows
歡迎加入QQ羣: 727623616 能夠一塊兒探討DX11,以及有什麼問題也能夠在這裏彙報。api
對於Visual Studio 2017,你能夠點擊項目-重定解決方案目標,選擇你當前擁有的SDK版本便可。數組
若是沒有上述選項,你須要全選全部項目,並在項目屬性-常規中,將Windows SDK版本改成當前你擁有的SDK版本。函數
此問題僅針對SDK版本在10.0.162099.0如下,而且是使用VS2017的狀況。工具
因爲在Visual Studio 2017版本15.5及更高版本所建立的新項目中,新增了編譯器的標準符合性模式(/permissive-
),而且該選項默認是開啓的。該選項用於檢測一些非標準C++語言的寫法,而且僅支持從10.0.162099.0
開始到目前最新版本的Windows SDK。舊版本的Windows SDK在編譯時會引起大量的編譯錯誤,須要在項目屬性- C/C++ -語言中,將符合模式設爲否。ui
注意: 在低版本的Visual Studio 2017,以及Visual Studio 2015是沒有標準符合性模式的設置的,而且默認爲否。debug
具體能夠參考 觸發-(標準符合性)3d
這種狀況下Release模式應該仍是能夠運行的,如今查看調試輸出窗口應該會有以下信息調試
目前已經確認是你電腦的Win10系統沒有安裝圖形工具。首先點擊Win-Windows 管理工具-服務
找到服務(本地)中的Windows Update項,若是沒有啓用,則將它啓動。
而後右鍵Win-設置,搜索:管理可選功能,進去後查看如今可選功能是否包含了圖形工具,若沒有則添加該功能,安裝完成後能夠看到:
如今應該能夠進行調試了
出現這個說明你的顯卡不支持特性等級11.0,你能夠嘗試給特性等級數組添加D3D_FEATURE_LEVEL_10_1
和D3D_FEATURE_LEVEL_10_0
,而後將全部的HLSL編譯器使用的着色器模型下調至Shader Model 4.0
,還要在全部CreateShaderFromFile
函數中下調。
在編寫該項目的時候一開始是隻考慮了Win 10 系統,沒有考慮向下兼容的,但如今既然要作到兼容(多是部分兼容),還須要在原有的項目基礎進行一些額外的配置。
CreateFile2
函數僅Windows 8以上的系統支持,該函數在DDSTextureLoader
中用到,但咱們能夠經過修改_WIN32_WINNT
的值來讓它使用CreateFileW
。
在項目屬性-C/C++ -預處理器中按下面的方式添加宏:
而後從新編譯解決方案/項目便可。
考慮到不該該只是由於沒法看到文字就讓程序運行不了,通過修改後,若是你的系統不支持DirectX 11.1,則將不會顯示文字。若是你想要在Windows 7系統上看到項目的文字,則須要:
Windows 7系統一般狀況下是缺乏該動態庫的,但若是你裝了Visual Studio 2015/2017,一般會包含該動態庫供使用。爲此,你須要從Visual Studio的安裝路徑中找到運行庫對應的版本,如:
Windows SDK 8.1對應C:\Program Files (x86)\Windows Kits\8.1\Redist\D3D
,而後再根據x64仍是x86將裏面的d3dCompiler_47.dll
複製到你的項目,或者C:\Windows\System32
中。
出現該問題是由於將不合適的d3dCompiler_47.dll
拉入到項目或系統環境中,參照上一條進行操做。
DirectX11 With Windows SDK完整目錄
歡迎加入QQ羣: 727623616 能夠一塊兒探討DX11,以及有什麼問題也能夠在這裏彙報。