【发布时间】:2021-02-05 21:01:24
【问题描述】:
我正在学习 C++ 和 Direct3D11/Direct2D(在 UWP 之上),但我正在努力让我的小测试程序运行。当我调用 CreateSwapChainForCoreWindow 时,它会引发访问冲突(具体异常请参见下文)。
我将 D3D 设备用于其他呼叫,并且它们正常工作,所以我认为这不是问题。交换链描述相对简单,交换链本身将在调用中设置。所以,我假设异常是因为我向窗口传递了一个不正确的指针,但我无法解决它。
例外:
在 UWP D2D 示例 v3.exe 中的 0x00007FF8FE44F4E0 (Windows.UI.dll) 处引发异常:0xC0000005:访问冲突执行位置 0x00007FF8FE44F4E0。
代码 sn-p (https://github.com/cwebb95/Direct2D_cppwinrt):
ComPtr<IDXGISwapChain1> swapChain = nullptr;
DX::ThrowIfFailed(dxgiFactory->CreateSwapChainForCoreWindow(m_d3dDevice.Get(),
reinterpret_cast<IUnknown*>(&CoreWindow::GetForCurrentThread()),
&swapChainDescription,
NULL,
&swapChain));
【问题讨论】:
-
您能告诉我您正在使用的项目类型吗?能否请您提供使用 Onedrive 或 GitHub 的示例代码?
-
感谢您的建议。我添加了代码的 GitHub 存储库。此外,它是一个 C++ winrt 项目。
标签: c++ uwp direct2d direct3d11