如何确定安装了哪个版本的 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?的主要内容,如果未能解决你的问题,请参考以下文章