1

我正在使用 Windows 8 上的 DirectX 11 程序,我认为顶点着色器存在问题。我尝试启动 DirectX 诊断模式 ([Alt]+[F5]),虽然如果打开诊断模式,程序将正常运行而不会引发异常,但它总是会在调用“CreateSwapChainForHwnd”时崩溃,并显示以下错误消息

MyApplication.exe 中 0x0097C004 处的未处理异常:0xC0000096:特权指令。

DirectX 调试是否根本不适用于 Windows 应用商店应用程序?它似乎在特定的 Win32 应用场景中运行良好,但我似乎遇到了许多它不起作用的场景。

更新:

除其他外,我安装了 DirectX 调试符号并获得了更详细的消息。

MyApplication.exe 中 0x000007FDED063589 (dxgi.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0x0000000000000000。

因此,从微软端的代码来看,它看起来是一个空引用异常。

4

1 回答 1

1

我认为您的问题是调试器不喜欢 CreateSwapChainForHwnd(),正如其他人发现的那样:Visual Studio 11's Graphics Debugger 的目标应用程序要求

我的代码调用 D3D11CreateDevice() 后跟 IDXGIFactory::CreateSwapChain() 并且调试器适用于桌面 win32 应用程序,所以试试吧。

您让它在哪些特定的 Windows 应用商店应用程序场景中工作?我有完全相反的问题 - 我无法让 Alt-F5 调试器完全适用于 Windows 商店应用程序,但它适用于桌面 win32 应用程序。

于 2013-02-20T20:53:49.373 回答