Direct3D11學習:(零)常見問題及解決方法整理
阿新 • • 發佈:2022-04-02
轉載請註明出處:http://www.cnblogs.com/Ray1024
一、概述
在D3D11學習的這個系列中,單獨寫一篇文章來記錄自己學習過程中遇到的問題及最後的解決方法。
這篇文章的目的主要是把自己在學習D3D11過程中遇到的問題整理下來,方便自己以後檢視,也幫助一些新手更快地解決問題。
二、問題與解決方法
2.1 安裝DirectX SDK過程中出現安裝錯誤,Error Code:s1023?
問題如圖:
問題分析:
其實根本原因在於Microsoft Visual C++ 2010 Redistributable這個元件,開啟控制面板>程式和功能面板,你會看到"Microsoft Visual C++ 2010 x86 Redistributable - 1010.0.40219"這一項元件。如下圖:
而June 2010 DirectX SDK需要安裝“Microsoft Visual C++ 2010 x86 Redistributable - 1010.0.30319”版本的元件,計算機中已經存在的此元件的新版本,所以安裝出現s1023錯誤。
解決步驟:
(1)要解決這個問題,在June 2010 DirectX SDK安裝之前,解除安裝計算機中存在的所有版本的Visual C++ 2010 Redistributable元件。
可以在程式和功能 面板中直接解除安裝。或者,也可以在命令列中執行以下命令解除安裝:
MsiExec.exe /passive /X{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7} (2)解除安裝完上面的元件之後,就可以安裝June 2010 DirectX SDK了。 (3)如果你需要新版本的Visual C++ 2010 Redistributable元件,也可以再安裝回去。 參考連結:https://support.microsoft.com/zh-cn/kb/2728613 2.2 程式除錯執行會出現錯誤:d3d11CreateDevice Failed?
問題分析:
建立裝置和上下文的函式為D3D11CreateDevice,這個函式的引數Flags表示可選的裝置建立標誌值。當以release模式生成程式時,該引數通常設為0(無附加標誌值);當以debug模式生成程式時,該引數應設為:D3D11_CREATE_DEVICE_DEBUG,用來啟用除錯層。
激活了除錯層之後,Direct3D會向VC++的輸出視窗傳送除錯資訊。
但是想要使用除錯層這個工具,我們需要知道:除錯層這個工具是存在於Graphics Tools這個元件中的。我們必須先安裝Graphics Tools這個元件。
解決方法:
方法1. Win10系統安裝Graphics Tools
開啟 開始選單 >設定>系統>應用和功能>管理可選功能>新增功能,找到Graphics Tools選擇就可以了(中文系統中的名字是圖形工具)。
方法2. Visual Studio 2015
安裝vs2015,也會自動安裝Graphics Tools這個元件的。
方法3. Visual Studio 2013
Visual Studio 2013的update5版本將自動的在Windows 10上配置Graphics Tools可選功能。
方法4:
如果你不想使用除錯層這個工具,直接在D3D11CreateDevice函式第四個引數設定為0。
參考連結:https://msdn.microsoft.com/library/windows/apps/dn914047.aspx
三、結語
另外,這篇文章會不定時更新。把自己學習過程中遇到的一些新問題也會加入到這裡。
希望這篇文章可以幫助到大家。
MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7} (2)解除安裝完上面的元件之後,就可以安裝June 2010 DirectX SDK了。 (3)如果你需要新版本的Visual C++ 2010 Redistributable元件,也可以再安裝回去。 參考連結:https://support.microsoft.com/zh-cn/kb/2728613 2.2 程式除錯執行會出現錯誤:d3d11CreateDevice Failed?