Visual c++ 在Windows C++应用程序中获取图形卡名称和信息的最佳方式是什么?

Visual c++ 在Windows C++应用程序中获取图形卡名称和信息的最佳方式是什么?,visual-c++,mfc,directx,dxgi,Visual C++,Mfc,Directx,Dxgi,我正在尝试从客户端计算机中提取一些信息,这些信息的格式几乎与从dxdiag.exe中看到的格式完全相同: 我意识到应该有一个API来实现这类功能,但是要访问这个工具。非常感谢您的帮助。对于Windows Vista或更高版本,请使用 您还可以查看的源代码和示例 我用做COM.< /P> < P>用于Windows Vista或稍后的C++智能指针,使用.< /P> 您还可以查看的源代码和示例 我用C++智能指针为COM.< /P>谢谢您,先生!在研究过程中,我在几家回购协议上都看到了你的名字和

我正在尝试从客户端计算机中提取一些信息,这些信息的格式几乎与从dxdiag.exe中看到的格式完全相同:


我意识到应该有一个API来实现这类功能,但是要访问这个工具。非常感谢您的帮助。

对于Windows Vista或更高版本,请使用

您还可以查看的源代码和示例


我用做COM.< /P> < P>用于Windows Vista或稍后的C++智能指针,使用.< /P> 您还可以查看的源代码和示例


我用C++智能指针为COM.< /P>谢谢您,先生!在研究过程中,我在几家回购协议上都看到了你的名字和图标。从世界上最有资格的人那里得到答案是很酷的。我对C++仍然有点陌生,所以我不确定下面是否正确。我需要添加以下几行代码才能使代码正常工作:``include``include pragma commentlib,DXGI.lib使用Microsoft::WRL::ComPtr;我还必须从这个文件中添加名称空间DX:谢谢,先生!在研究过程中,我在几家回购协议上都看到了你的名字和图标。从世界上最有资格的人那里得到答案是很酷的。我对C++仍然有点陌生,所以我不确定下面是否正确。我需要添加以下几行代码才能使代码正常工作:``include``include pragma commentlib,DXGI.lib使用Microsoft::WRL::ComPtr;我还必须从该文件中添加名称空间DX:

#include <dxgi.h>
#include <wrl/client.h>

#pragma comment(lib, "dxgi.lib")

using Microsoft::WRL::ComPtr;

ComPtr<IDXGIFactory1> dxgiFactory;
HRESULT hr = CreateDXGIFactory1(IID_PPV_ARGS(dxgiFactory.ReleaseAndGetAddressOf()));
if (FAILED(hr)) // ... error handling

ComPtr<IDXGIAdapter1> adapter;
for (UINT adapterIndex = 0;
     SUCCEEDED(dxgiFactory->EnumAdapters1(
               adapterIndex,
               adapter.ReleaseAndGetAddressOf()));
     adapterIndex++)
{
    DXGI_ADAPTER_DESC1 desc = {};
    hr = adapter->GetDesc1(&desc);
    if (FAILED(hr)) // ... error handling

    if (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE)
    {
        // Don't select the Basic Render Driver adapter.
        continue;
    }

    // desc.VendorId: VID
    // desc.DeviceId: PID
    // desc.Description: name string seen above
}