Graphics DirectX 11 CreateSwapChainForHwnd失败,E_访问被拒绝

Graphics DirectX 11 CreateSwapChainForHwnd失败,E_访问被拒绝,graphics,directx,directx-11,Graphics,Directx,Directx 11,我正在开发directX 11应用程序。在创建DX11设备之后,我正在使用IDXGIFactory2::CreateSwapChainForHwnd创建交换链。DX11代码位于一个对象中,该对象被销毁后重新创建,以将另一个视频流渲染到同一个HWND(窗口句柄) 在应用程序IDXGIFactory2::CreateSwapChainForHwnd的第一次运行中,没有问题。然后,应用程序使用DX11代码销毁对象,该代码会销毁DX11设备和交换链等。它将使用相同的HWND再次重新初始化DX11代码,而

我正在开发directX 11应用程序。在创建DX11设备之后,我正在使用IDXGIFactory2::CreateSwapChainForHwnd创建交换链。DX11代码位于一个对象中,该对象被销毁后重新创建,以将另一个视频流渲染到同一个HWND(窗口句柄)

在应用程序IDXGIFactory2::CreateSwapChainForHwnd的第一次运行中,没有问题。然后,应用程序使用DX11代码销毁对象,该代码会销毁DX11设备和交换链等。它将使用相同的HWND再次重新初始化DX11代码,而这次IDXGIFactory2::CreateSwapChainForHwnd会因E_ACCESSDENIED而失败

我已经阅读了MSDN文档,其中指出在更改交换链时,不同的销毁存在问题。在这里:

我尝试实施建议的解决方案,以强制销毁对象:

D3D11Context->ClearState();
D3D11Context->Flush();
但是IDXGIFactory2::CreateSwapChainForHwnd仍然返回E_ACCESSDENIED


有人知道为什么会发生这种情况吗?谢谢

您是否尝试过使用DirectX控制面板启用调试输出,然后运行调试生成并读取控制台输出?DirectX调试日志通常提供大量信息,并且通常建议一种实际上非常有用的修复方法。谢谢,我能够使用控制面板找出我的错误。结果表明,调用DXGI EnumAdapters call后,我以为正在释放的对象没有被释放。对于那些寻找DirectX控制面板的人,请从运行对话框中运行
dxcpl.exe