DirectX 10 IDXGISWAPCHAIN :: GetBuffer多线程CTD错误



我正在尝试创建一个多线程程序,其中所有渲染均在主线程上完成,而消息处理(和窗口创建(是在辅助线程上完成的。初始化功能中的代码SwapChain->GetBuffer(0, __uuidof(ID3D10Texture2D), (void**)&back_buffer);的以下行会产生访问违规错误(0xc0000005(,当时初始化函数放在主线程上。

如何解决此错误而不将初始化函数放在辅助线程上?

编辑:我在此处发布了所有相关代码。

在application.cpp的第49行上, while (HWindow != nullptr);正在等待 HWindow nullptr。但是Hwindow被初始化为nullptr,因此while循环会跳过并尝试初始化尚未创建的窗口。

现在该行读取while (HWindow == nullptr);。这意味着循环运行直到创建窗口,从而阻止不存在的窗口的初始化。

最新更新