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

时间:2008-09-17 03:44:28

标签: c++ windows direct3d

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

4 个答案:

答案 0 :(得分:5)

调用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));
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

另一个快速的Google搜索在C ++中为reading from the registry提供了一个示例。

...享受

答案 3 :(得分:0)

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

不要使用注册表!那些东西没有证件,也不能保证有效。

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