3

Direct3D を使用する必要があるアプリケーションがあります。具体的には、少なくとも DirectX 9.0c バージョン 4.09.0000.0904 が必要です。これはすべての新しい XP マシンに存在するはずですが、古い XP マシンにはインストールされていない可能性があります。プログラムで (C++ を使用して) インストールされているかどうかを確認するにはどうすればよいですか? Direct3D が利用できなくなるという情報メッセージをユーザーに提供できるようにしたいと考えています。

4

4 に答える 4

5

DirectXSetupGetVersion を呼び出します: http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.directsetup.directxsetupgetversion

dsetup.h を含める必要があります。

サイトのサンプルコードは次のとおりです。

DWORD dwVersion;
DWORD dwRevision;
if (DirectXSetupGetVersion(&dwVersion, &dwRevision))
{
    printf("DirectX version is %d.%d.%d.%d\n",
           HIWORD(dwVersion), LOWORD(dwVersion),
           HIWORD(dwRevision), LOWORD(dwRevision));
}
于 2008-09-17T03:56:05.373 に答える
0

Google で簡単に検索すると、レジストリ内のバージョン番号の場所を特定するこの記事が見つかり、内部のバージョン番号を私たちがよく知っているバージョン番号にマップするケース ステートメントが提供されます。

別の簡単な Google 検索で、レジストリから読み取るための C++ の例が見つかります。

楽しみ...

于 2008-09-17T04:10:17.727 に答える
0

はい。2009 年 3 月の DirectX SDK の DirectX インストール サンプルに示されているメカニズムを使用してください。(サンプル ブラウザの「システム」カテゴリの下を見てください。)

レジストリを使用しないでください。そのようなものは文書化されておらず、動作することが保証されていません。

サポートされている唯一の方法は、DirectX インストール サンプルに示されている DirectSetup API を使用することです。これについては、第 24 章の「インストールとセットアップ」でも説明しています。私の著書The Direct3D Graphics Pipeline . その章は上記の URL から無料でダウンロードできます。

于 2009-07-17T01:42:32.213 に答える
0

DirectX 9.0 SDK (2004 年夏) のドキュメントによると、\Samples\Multimedia\DXMisc\GetDXVer にある GetDXVer SDK サンプルを参照してください。

于 2008-09-17T03:53:00.873 に答える