DirectX诊断模式;不适用于Win32(?)



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

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

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

更新:

除此之外,我安装了DirectX调试符号,得到了一条稍微详细一些的消息。

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

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

我认为你的问题是调试器不喜欢CreateSwapChainForHwnd(),正如另一个人发现的那样:Visual Studio 11';s图形调试器

我的代码调用D3D11CreateDevice(),然后调用IDXGIFactory::CreateSwapChain(),调试器适用于桌面win32应用程序,所以请尝试一下。

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

最新更新