gpt4 book ai didi

c++ - Direct3D11-在CreateSwapChainForCoreWindow上执行位置xxx的访问冲突

转载 作者:行者123 更新时间:2023-12-03 07:23:07 26 4
gpt4 key购买 nike

我在学习C++和Direct3D11 / Direct2D(在UWP之上)很有趣,但是正在努力让我的小测试程序运行。当我调用CreateSwapChainForCoreWindow时,它会引发访问冲突(请参见下面的确切异常)。
我将D3D设备用于其他 call ,但它们起作用了,所以我认为这不是问题。交换链描述相对简单,交换链本身将在调用中设置。因此,我认为该异常是因为我将错误的指针传递给窗口,但无法解决。
异常(exception):

Exception thrown at 0x00007FF8FE44F4E0 (Windows.UI.dll) in UWP D2D example v3.exe: 0xC0000005: Access violation executing location 0x00007FF8FE44F4E0.


程式码片段( 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));

最佳答案

通过将第二个参数更改为:

static_cast<::IUnknown*>(winrt::get_abi(CoreWindow::GetForCurrentThread()))
从:
reinterpret_cast<IUnknown*>(&CoreWindow::GetForCurrentThread())
我还不是很了解,还不知道为什么可以解决这个问题,但是我将进行研究并希望找出答案(对该问题的任何线索都将不胜感激)。

关于c++ - Direct3D11-在CreateSwapChainForCoreWindow上执行位置xxx的访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64489113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com