使用 DX8 SDK 开发的游戏,就只在 DX8 下运行,因为它调用的都是 DX8 的方法,例如 Direct3DCreate8,这个方法只有 d3d8.dll 提供。
如果你想用 DX9 来运行 DX8 的游戏,你需要手动把每个 DX8 的调用都转换为 DX9 的调用,这需要很多的额外工作量。如 DxWrapper 这样的项目,都是需要很多转换工作,才能把低版本的 DX 调用转换为高版本的 DX 调用,让高版本的 dll 去运行低版本的游戏。
安装了一个版本的 DX,以前版本的所有 DX 就都被安装了。既然你用的是 Windows 98,操作系统层面的兼容性应该没有问题。如果哪个老版本的不行,说明显卡驱动对这个 DX 版本支持不好,或者是显卡硬件对老 DX 特性支持不好。