我遇到错误
的问题if (FAILED(D3D11CreateDeviceAndSwapChain(
nullptr,
D3D_DRIVER_TYPE_HARDWARE,
nullptr,
createFlags,
requestedLevels,
sizeof(requestedLevels) / sizeof(D3D_FEATURE_LEVEL),
D3D11_SDK_VERSION,
&scd,
&pSwapChain,
&pDevice,
&obtainedLevel,
&pContext)))
{
MessageBox(hWnd, "Failed to create directX device and swapchain!",
"Error", MB_ICONERROR);
return NULL;
}
消息显示所有时间使用.dll文件
我重新安装了DirectX和Nvidia驱动程序。 你下一步怎么做? (其他电脑工作正常)
答案 0 :(得分:1)
最可能的原因是您已设置D3D11_CREATE_DEVICE_DEBUG
创建标志,但系统未安装Direct3D调试设备。运行legacy DirectX SDK不适用于使用DirectX 11.1或更高版本的Windows 7 SP1以获取开发人员运行时。
如上面的评论中所述,您从此函数返回的
HRESULT
值会提示原因,但您未能在代码段中输出它。
在系统上获取调试设备的方式取决于您正在运行的操作系统。有关完整列表,请参阅this post。例如,如果您运行的是Windows 10,则不会安装SDK,而是必须启用图形工具“按需功能”。
其他可能的原因是:
您的系统上没有支持requestedLevels
<{3}}
D3D11CreateDeviceAndSwapChain
列表的设备
您已将一些无效的输入参数集传递给设备或交换链创建 - 这是使用更现代的创建交换链的方法的另一个原因,与设备创建无关。 请注意,{{1}}是遗留函数,因此您作为教程使用的任何材料都可能过时。请参阅Direct3D Hardware Feature levels
如果您不熟悉DirectX开发,我建议您查看Anatomy of Direct3D 11 Create Device。