0

まず、dxdiag によると、私は DirectX バージョン 11 を使用しています。ただし、チュートリアル (rastertek.com) を実行していて、directx デバイス (具体的には D3D11CreateDeviceAndSwapChain 関数) を初期化しているときに、エラーが返されます (したがって、プログラムが停止します)。 )。上記のサイトには、D11 と D10 の両方のチュートリアルがあり、前述のとおり、D11 バージョンは動作しませんが、D10 バージョンは動作します。そのため、DX バージョン 11 を使用しているにもかかわらず、プログラムが失敗する理由がわかりません。

プログラムがエラーを返す場所は次のとおりです。

result = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, &featureLevel, 1, 
                       D3D11_SDK_VERSION, &swapChainDesc, &m_swapChain, &m_device, NULL, &m_deviceContext);

これらすべての変数がhttp://www.rastertek.com/dx11tut03.htmlでどこから来ているかを確認できます。ページの 1/3 より少し下にあります。

私は他のフォーラムでこの関数に関する他の問題を見てきました (そして、彼らがすることは私を助けません)、最初のパラメーターが null でない場合、2 番目のパラメーターを D3D_DRIVER_TYPE_UNKNOWN に設定すると言う msdn と同様に、これはまだありません違いが生じる・異なる。

この問題についての啓発は大歓迎です! ありがとう!!

4

1 に答える 1

0

要求どおり:
dxdiag はシステムにインストールされている DirectX のバージョンのみを表示しますが、それはハードウェアが実際にそれをサポートしていることを意味しません。
したがって、ハードウェアが DirectX 10 までしかサポートしていないのに、dxdiag が DirectX 11 を表示する可能性があります。これにより、DirectX11 のみのコードが失敗します。

于 2013-11-03T00:16:22.303 に答える