0

首先,根据 dxdiag,我有 DirectX 版本 11。但是,我正在阅读教程 (rastertek.com),在初始化我的 directx 设备(特别是 D3D11CreateDeviceAndSwapChain 函数)时,它返回一个错误(因此程序停止)。在上面的网站上,有 D11 和 D10 的教程,如前所述,D11 版本不起作用,但 D10 版本可以工作。所以我不明白为什么即使我有 DX 版本 11,程序也会失败。

这是程序返回错误的地方:

result = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, &featureLevel, 1, 
                       D3D11_SDK_VERSION, &swapChainDesc, &m_swapChain, &m_device, NULL, &m_deviceContext);

您可以在http://www.rastertek.com/dx11tut03.html中查看所有这些变量的来源,它位于页面下方的 1/3 以上。

我在其他论坛中看到了这个函数的其他问题(他们所做的对我没有帮助),以及 msdn 说如果第一个参数是非空的,将第二个参数设置为 D3D_DRIVER_TYPE_UNKNOWN,仍然没有做出改变。

非常感谢您对这个问题的任何启示!谢谢!!

4

1 回答 1

0

根据要求:
dxdiag 仅显示系统上安装了哪个版本的 DirectX,但这并不意味着硬件确实支持它。
因此,dxdiag 可能显示 DirectX 11,而硬件仅支持 DirectX 10,这将导致仅 DirectX11 的代码失败。

于 2013-11-03T00:16:22.303 回答