11

特にDirectX9.0cのコード(C ++コード内から)からグラフィックカードのモデル/ブランドを取得するにはどうすればよいか疑問に思いました。

4

5 に答える 5

11

DirectXで最も簡単な方法は、IDirect3D9::GetAdapterIdentifierを使用することです。

D3DADAPTER_IDENTIFIER9オブジェクトを作成し、そのオブジェクトへのポインターをGetAdapterIdentifierに渡すだけです。DirectXは、グラフィックカードの説明を[説明]フィールドに文字列として入力します。また、カードがどのディスプレイデバイスであるか、および使用しているドライバのバージョンに関する情報も含まれています。

あなたはこのようなものを手に入れます:

  • 説明:「NVIDIAGeForceGTX570」
  • デバイス:"\。\DISPLAY1"
  • ドライバー:「nvd3dum.dll」
于 2012-04-03T21:19:16.223 に答える
7

実行時に、デバイスモデルとベンダーを照会できます。

  • OpenGLで、コマンドglGetString(GL_VENDOR)またはGL_RENDERERまたはGL_VERSIONを使用して、必要な情報を取得します。

  • DirectX 9では、情報はMicrosoft構成システムにあり、デバイスデータベースから照会されているようです。これは、このドキュメントのセクション3であり、サンプルコードも含まれています。http://msdn.microsoft.com/en-us/library/bb204848 (VS.85).aspx 同じシステムを使用して、ビデオカードが持っているram、ドライバ番号など。

于 2009-07-07T03:59:27.067 に答える
2

私の本TheDirect3DGraphicsPipelineの2章Direct3Dをご覧ください。セクション2.12、特定のデバイスの識別を参照してください。

于 2009-07-19T16:16:12.713 に答える
0

DX SDK http://msdn.microsoft.com/en-us/library/ee416986%28v=VS.85%29.aspxのサンプルDxDiagOutputのように、「DirecXDiagnosticTool」APIを使用できます 。

于 2011-01-24T17:25:45.803 に答える
0
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]));
}

次に、アダプターの説明を取得します(アダプター->説明)

于 2018-06-18T21:35:01.823 に答える