【发布时间】:2016-01-06 18:57:28
【问题描述】:
for (UINT driverTypeIndex = 0; driverTypeIndex < numDriverTypes; driverTypeIndex++)
{
_driverType = driverTypes[driverTypeIndex];
hr = D3D11CreateDeviceAndSwapChain(nullptr, _driverType, nullptr, createDeviceFlags, featureLevels, numFeatureLevels,
D3D11_SDK_VERSION, &sd, &_pSwapChain, &_pd3dDevice, &_featureLevel, &_pImmediateContext);
if (SUCCEEDED(hr))
break;
}
D3D11CreateDeviceSwapChain 向 hr 返回一个未成功的值,这导致我无法跳出 for 循环
hr 未能对项目的所有版本进行 for 循环/驱动程序检查,即使它只是在最后 1-2 次迭代中开始发生。
感谢任何帮助。
【问题讨论】:
-
0xCDCDCDCD通常表示您正在取消引用未初始化的指针。如果没有看到你的代码,这个问题就无法真正回答。 -
请edit您的问题包含minimal reproducible example,以便我们可以实际重现问题。
-
@πάνταῥεῖ 错误只是因为 hr 没有成功而发生 - 我的问题依赖于 D3D11CreateDeviceSwapChain 成功。
-
代码在另一个使用相同 VisualStudio 的系统上运行良好,所以我不确定是什么导致了这个问题
标签: c++ visual-studio directx directx-11