DirectX 10 IDXGISwapChain::GetBuffer 多线程 CTD 错误
DirectX 10 IDXGISwapChain::GetBuffer Multithread CTD Error
我正在尝试创建一个多线程程序,其中所有渲染都在主线程上完成,而消息处理(和 window 创建)在辅助线程上完成。当初始化函数放在主线程上时,初始化函数中的以下代码行 SwapChain->GetBuffer(0, __uuidof(ID3D10Texture2D), (void**)&back_buffer);
会产生访问冲突错误 (0xc0000005)。
如何在不将初始化函数放在辅助线程上的情况下修复此错误?
编辑:我已经发布了所有相关代码 here。
在 Application.cpp 的第 49 行,while (HWindow != nullptr);
正在等待 HWindow
成为 nullptr
。但是 HWindow 被初始化为 nullptr
,因此 while 循环将跳过并尝试初始化尚未创建的 window。
该行现在显示为 while (HWindow == nullptr);
。这意味着循环一直运行到 window 被创建,从而阻止初始化不存在的 window。
我正在尝试创建一个多线程程序,其中所有渲染都在主线程上完成,而消息处理(和 window 创建)在辅助线程上完成。当初始化函数放在主线程上时,初始化函数中的以下代码行 SwapChain->GetBuffer(0, __uuidof(ID3D10Texture2D), (void**)&back_buffer);
会产生访问冲突错误 (0xc0000005)。
如何在不将初始化函数放在辅助线程上的情况下修复此错误?
编辑:我已经发布了所有相关代码 here。
在 Application.cpp 的第 49 行,while (HWindow != nullptr);
正在等待 HWindow
成为 nullptr
。但是 HWindow 被初始化为 nullptr
,因此 while 循环将跳过并尝试初始化尚未创建的 window。
该行现在显示为 while (HWindow == nullptr);
。这意味着循环一直运行到 window 被创建,从而阻止初始化不存在的 window。