我想知道如何从代码中获取显卡型号/品牌,特别是 DirectX 9.0c(从 C++ 代码中)。

有帮助吗?

解决方案

运行时可以查询设备型号和供应商:

  • 在 OpenGL 中,使用命令 glGetString(GL_VENDOR) 或 GL_RENDERER 或 GL_VERSION 来获取您想要的信息。

  • 在 DirectX 9 中,该信息似乎位于 Microsoft 配置系统中,并且是从设备数据库中查询的。这是本文档的第 3 节,其中还有示例代码: http://msdn.microsoft.com/en-us/library/bb204848(VS.85).aspx使用相同的系统,您可以获得诸如视频卡的内存量、驱动程序号等信息。

其他提示

DirectX 中最简单的方法是通过 IDirect3D9::获取适配器标识符.

只需创建一个 D3DADAPTER_IDENTIFIER9 对象,将指向它的指针传递给 GetAdapterIdentifier。DirectX 将显卡描述作为字符串填写在“描述”字段中。它还包括有关该卡的显示设备以及您拥有的驱动程序版本的信息。

你会得到这样的东西:

  • 描述:“NVIDIA GeForce GTX 570”
  • 设备:“\.\DISPLAY1”
  • 司机:“nvd3dum.dll”

看一看第2章的Direct3D 从我的书的Direct3D图形管线。见2.12,标识特定设备的

可以在从DX SDK示例DxDiagOutput使用“DirecX诊断工具”的API,像 http://msdn.microsoft.com/en -us /库/ ee416986%28V = VS.85%29.aspx

IDirect3D9* d3dobject = Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS d3dpresent;
memset(&d3dpresent, 0, sizeof(D3DPRESENT_PARAMETERS));
d3dpresent.Windowed = TRUE;
d3dpresent.SwapEffect = D3DSWAPEFFECT_DISCARD;
UINT adaptercount = d3dobject->GetAdapterCount();
D3DADAPTER_IDENTIFIER9* adapters = (D3DADAPTER_IDENTIFIER9*)malloc(sizeof(D3DADAPTER_IDENTIFIER9) * adaptercount);

for (int i = 0; i < adaptercount; i++)
{
      d3dobject->GetAdapterIdentifier(i, 0, &(adapters[i]));
}

然后得到适配器的描述(适配器 - >描述)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top