0

目前我用 C# 开发一个项目。在这个项目中,我使用 DirectX API。现在我想实现一个函数来检查 DirectX 是否可用?

你知道怎么做吗?

谢谢您的帮助!

4

2 回答 2

0

您是否需要检测系统中是否有兼容 DirectX 的 GPU,以便可以创建 Direct3D9 设备,某些虚拟操作系统等不是这种情况?可以通过创建一个设备实例并捕获它可能抛出的异常来简单地测试它。

DirectX 安装本身可以通过查看 Windows\System32 文件夹来检查。例如,检查 d3d9d.dll 和 D3DX9_43.dll。

于 2013-04-11T14:02:48.937 回答
0

获取 DirectX - 版本的另一种方法:

    void CheckDirectXMajorVersion()
    {
        int directxMajorVersion = 0;

        var OSVersion = Environment.OSVersion;

        // if Windows Vista or later
        if (OSVersion.Version.Major >= 6)
        {
            // if Windows 7 or later
            if (OSVersion.Version.Major > 6 || OSVersion.Version.Minor >= 1)
            {
                directxMajorVersion = 11;
            }
            // if Windows Vista
            else
            {
                directxMajorVersion = 10;
            }
        }
        // if Windows XP or earlier.
        else
        {
            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\DirectX"))
            {
                string versionStr = key.GetValue("Version") as string;
                if (!string.IsNullOrEmpty(versionStr))
                {
                    var versionComponents = versionStr.Split('.');
                    if (versionComponents.Length > 1)
                    {
                        int directXLevel;
                        if (int.TryParse(versionComponents[1], out directXLevel))
                        {
                            directxMajorVersion = directXLevel;
                        }
                    }
                }
            }
        }

        Console.WriteLine("DirectX Version: " + directxMajorVersion.ToString());

        Console.ReadKey();
    }
于 2013-04-12T07:03:45.607 回答