目前我在C#中开发了一个项目。在这个项目中,我使用DirectX API。现在我想实现一个函数来检查DirectX是否可用?
你知道怎么做吗?
感谢您的帮助!
答案 0 :(得分:0)
您是否需要检测系统中是否存在与DirectX兼容的GPU,以便可以创建Direct3D9设备,某些虚拟操作系统不是这种情况?只需创建一个设备实例并捕获它可能引发的异常即可对其进行测试。
通过查看Windows \ System32文件夹可以检查DirectX安装本身。例如,检查d3d9d.dll和D3DX9_43.dll。
答案 1 :(得分: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();
}