我们有一个需要使用Direct3D的应用程序。具体来说,它至少需要DirectX 9.0c版本4.09.0000.0904。尽管所有较新的XP计算机上都应存在此文件,但较旧的XP计算机上可能未安装此文件。如何以编程方式(使用C++)确定是否已安装?我希望能够向用户提供一条信息消息,指出Direct3D将不可用。

最佳答案

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

10-04 23:14