1

頂点シェーダーに問題があると思うWindows8でDirectX11プログラムを使用しています。DirectX診断モード([Alt] + [F5])を開始しようとしましたが、診断モードがオンになっている場合、プログラムは通常は例外をスローせずに実行されますが、「CreateSwapChainForHwnd」の呼び出しで常にクラッシュし、次のエラーメッセージが表示されます。

MyApplication.exeの0x0097C004で未処理の例外:0xC0000096:特権命令。

DirectXのデバッグはWindowsストアアプリケーションでは機能しませんか?特定のWin32アプリケーションシナリオでは正常に機能するようですが、機能しない多くのシナリオに遭遇しているようです。

アップデート:

特に、DirectXデバッグシンボルをインストールして、わずかに詳細なメッセージを受け取りました。

MyApplication.exeの0x000007FDED063589(dxgi.dll)で未処理の例外:0xC0000005:アクセス違反の読み取り場所0x0000000000000000。

したがって、Microsoft側のコードからのnull参照例外のように見えます。

4

1 に答える 1

1

あなたの問題は、この他の人が見つけたように、デバッガーがCreateSwapChainForHwnd()を好まないことだと思います:VisualStudio11のグラフィックスデバッガーのターゲットアプリケーションの要件

私のコードはD3D11CreateDevice()を呼び出し、続いてIDXGIFactory :: CreateSwapChain()を呼び出し、デバッガーはデスクトップwin32アプリで動作するので、それを試してください。

あなたがそれを動作させた特定のWindowsストアアプリケーションシナリオは何ですか?正反対の問題があります。WindowsストアアプリではAlt-F5デバッガーをまったく機能させることができませんが、デスクトップwin32アプリでは機能します。

于 2013-02-20T20:53:49.373 に答える