0
ID3D11Device* md3dDevice;
ID3D11DeviceContext* md3dImmediateContext;
D3D_DRIVER_TYPE md3dDriverType = D3D_DRIVER_TYPE_HARDWARE;
HRESULT hr = D3D11CreateDevice(
            0,                 
            md3dDriverType,
            0,                 
            D3D11_CREATE_DEVICE_DEBUG, 
            0, 0,              
            D3D11_SDK_VERSION,
            &md3dDevice,
            &featureLevel,
            &md3dImmediateContext);ID3D11Device* md3dDevice;

D3D11_CREATE_DEVICE_DEBUG フラグを含めると、この関数から e_fail が発生します (フラグなしで正常に動作します)。これは私のデバッグ ランタイムと関係があると思ったので、このスレッドの指示に従って dx SDK を再インストールしました: What can cause D3D11CreateDevice() to fail with E_FAIL? しかし、それは問題を解決しませんでした。

また、dxdiag でゼロ デバッグ レベルが引き続き表示されます。

--------------------
DirectX Debug Levels
--------------------
Direct3D:    0/4 (retail)
DirectDraw:  0/4 (retail)
DirectInput: 0/5 (retail)
DirectMusic: 0/5 (retail)
DirectPlay:  0/9 (retail)
DirectSound: 0/5 (retail)
DirectShow:  0/6 (retail)

どんな助けでも大歓迎です。

4

1 に答える 1

3

「D3D11CreateDevice()がE_FAILで失敗する原因は何ですか?」でリンクしたスレッド 私が思うあなたの質問への答えが含まれています。

Chuck Walbournを引用します:

SDK Debug Layerの最新バージョンは、従来のDirectX SDK(2010年6月)リリースには含まれていません。スタンドアロンのWindows8.0SDK、Visual Studio 2012をインストールする必要があります。または、VS2012リモートデバッグツールパッケージをインストールすることもできます。

http://blogs.msdn.com/b/chuckw/archive/2013/02/26/directx-11-1-and-windows-7-update.aspx

私にとって、VS 2012リモートデバッグツールパッケージをインストールすると、問題は解決しました。

于 2013-03-11T11:59:19.087 に答える