![已安装 DirectX 11,但程序说需要 DirectX 9.0c](https://linux22.com/image/1411777/%E5%B7%B2%E5%AE%89%E8%A3%85%20DirectX%2011%EF%BC%8C%E4%BD%86%E7%A8%8B%E5%BA%8F%E8%AF%B4%E9%9C%80%E8%A6%81%20DirectX%209.0c%20.png)
我正在运行 Windows 8.1。我正在尝试运行Assimp 查看器(以及其他几个类似的程序)但它们都无法打开,因为它们无法识别我的 DirectX 版本。
当我尝试运行 3D_Model_Viewer 时出现以下错误:
已安装 DirectX 9.0 (589824)。需要 DirecX 9.0c (2005 年 12 月) 或更高版本。
当我运行 AssimpViewer 时出现此错误:
无法初始化 Direct3D 9 (2)
我已经运行了 dxdiag.exe 并确认安装的是 DirectX 11 版本,而不是程序所说的 9.0。
这里可能发生了什么?我可以让这些程序在 DirectX 11 下运行吗?
答案1
近年来,DirectX 变成了一个怪物。每次发布新版本的运行时时,它们都会使用完全不同的 DLL。
如果您的应用程序面向 2005 年 12 月版的 DirectX,则完全有可能您没有安装该版本的运行时。不,您需要正确版本的 DX9,DX11 与 DX9 完全正交 - 如果 Microsoft 实际上没有将 DX11 和 DX9 与操作系统一起打包,则您的系统可能安装了 DX11,但完全没有 DX9。
长话短说,下载DirectX 可再发行安装程序来自微软。
答案2
简单来说,DirectX 9 和 DirectX 11 之间的区别就像 Windows XP 和 Windows 7 之间的区别。
两者具有完全不同的基础(在本例中是 DLL 文件)。 因此,为了运行某些游戏,您肯定需要 DirectX 9。