如何确定安装了哪个版本的 Direct3D?

Posted

技术标签:

【中文标题】如何确定安装了哪个版本的 Direct3D?【英文标题】:How to determine which version of Direct3D is installed? 【发布时间】:2008-09-17 03:44:27 【问题描述】:

我们有一个需要使用 Direct3D 的应用程序。具体来说,它至少需要 DirectX 9.0c 版本 4.09.0000.0904。虽然这应该存在于所有较新的 XP 机器上,但它可能不会安装在较旧的 XP 机器上。如何以编程方式(使用 C++)确定它是否已安装?我希望能够向用户提供 Direct3D 将不可用的信息消息。

【问题讨论】:

【参考方案1】:

调用 DirectXSetupGetVersion:http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.directsetup.directxsetupgetversion

您需要包含 dsetup.h

这是来自网站的示例代码:

DWORD dwVersion;
DWORD dwRevision;
if (DirectXSetupGetVersion(&dwVersion, &dwRevision))

    printf("DirectX version is %d.%d.%d.%d\n",
           HIWORD(dwVersion), LOWORD(dwVersion),
           HIWORD(dwRevision), LOWORD(dwRevision));

【讨论】:

【参考方案2】:

根据 DirectX 9.0 SDK(2004 年夏季)文档,请参阅位于 \Samples\Multimedia\DXMisc\GetDXVer 的 GetDXVer SDK 示例。

【讨论】:

【参考方案3】:

快速的 Google 搜索出现 this article,它标识了版本号在注册表中的位置,然后提供了一个案例语句,将内部版本号映射到我们更熟悉的版本号。

另一个快速的 Google 搜索会在 C++ 中找到reading from the registry 的示例。

享受...

【讨论】:

【参考方案4】:

是的,使用 2009 年 3 月 DirectX SDK 中的 DirectX 安装示例中显示的机制。 (在示例浏览器的“系统”类别下查看。)

不要使用注册表!这些东西是无证的,不保证可以工作。

唯一受支持的方式是使用 DirectSetup API,如 DirectX 安装示例所示。我还在我的书The Direct3D Graphics Pipeline 中的第 24 章中介绍了这些内容。安装和设置。您可以在上述网址免费下载该章节。

【讨论】:

以上是关于如何确定安装了哪个版本的 Direct3D?的主要内容,如果未能解决你的问题,请参考以下文章

确定安装了哪些 NET Framework 版本

如何确定已安装的 webpack 版本

确定安装了哪些 NET Framework 版本

确定哪个版本的 OpenCV

如何验证是不是安装了 SQL Express (2014) 以及哪个实例

WildFly:确定正在使用哪个版本的 JBossWS 的快速方法?