簡體   English   中英

如何檢查DirectX是否可用?

[英]How to check whether DirectX is available?

目前,我在C#中開發了一個項目。 在此項目中,我使用DirectX API。 現在,我想實現一個功能來檢查DirectX是否可用?

你有一個想法如何做到這一點?

謝謝您的幫助!

您是否需要檢測系統中是否存在與DirectX兼容的GPU,以便可以創建Direct3D9設備,而在某些虛擬操作系統等中卻不是這種情況? 可以簡單地通過創建設備實例並捕獲可能引發的異常來測試該實例。

可以通過查看Windows \\ System32文件夾來檢查DirectX安裝本身是否存在。 例如,檢查d3d9d.dll和D3DX9_43.dll。

獲得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();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM