2013-11-03 72 views
0

首先,根据dxdiag,我有DirectX版本11.但是,我正在通过一个教程(rastertek.com),并初始化我的DirectX设备(特别是D3D11CreateDeviceAndSwapChain函数)时,它返回一个错误(因此程序被停止)。在上述网站上,有D11和D10两个教程,并且如前所述,D11版本不起作用,但是D10版本确实有效。所以我不明白为什么即使我有DX版本11,程序失败。DirectX 11不能正常工作,但是10是?

在此处,该程序将返回一个错误:

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,仍然没有区别。

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

+0

据我所知,dxdiag只显示系统上安装了哪个版本的DirectX,但这并不意味着您的硬件支持该版本。显然你的显卡只支持DirectX 10,这就是为什么功能失败的原因 – UnholySheep

+0

这是一个无赖(也是如此),我会做出这个最好的答案,如果你发布它@UnholySheep – user2948879

+0

[This](http:// www.techpowerup.com/gpuz/)实用程序应该有助于确定您正在使用的GPU的功能.... – Recker

回答

0

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

相关问题