次の方法で共有


DirectX のサンプルおよびその他の DirectX アプリケーションのコンパイル

DirectX のサンプルおよびその他の DirectX アプリケーションのコンパイル

ここでは、Microsoft® DirectX® アプリケーションのコンパイル時に考慮すべき点について説明する。DirectX 9.0 では、Microsoft Visual C++® 6.0 以降のみがサポートされる。

  • コンパイルの準備
  • コンポーネントのバージョン定数
  • GUID とのリンク

コンパイルの準備

このソフトウェア開発キット (SDK) に含まれている各サンプルには、サンプル用のソース ファイル、プロジェクト リソース、リンカなどの設定情報を記述した Microsoft Visual Studio® のプロジェクト ファイル (.dsp ファイル) が用意されている。しかし、サンプルを確実にコンパイルし、リンクするには、サンプルをコンパイルする開発者が若干設定作業を行わなければならない場合もある。また、新しいプロジェクトを作成するため、そのプロジェクト用の設定情報を開発者が自分で用意しなければならない場合もある。ここでは、DirectX のサンプルにも、開発者が独自に開発する DirectX アプリケーションにも該当する内容を説明する。

Visual Studio でプロジェクト ファイルを開いた後、アプリケーションをコンパイルする前にいくつかの設定値をチェックしなければならない。これらの設定値は Visual C++ 6.0 と Visual Studio .NET のどちらを使うかによって異なる。

  以下の説明ではデフォルトのインストール パス (C:\DXSDK\Include および C:\DXSDK\Lib) を使い、ヘッダー ファイルとライブラリ ファイルの場所を記述する。インストール パスは異なる場合もある。

Visual Studio 6.0 を使う場合

インクルード ファイルの検索パス

ヘッダー ファイルのパスが正しいこと、DirectX のヘッダー ファイルのディレクトリがコンパイラに最初に検索されるパスになっていることを確認すること。インクルード パスを確認するには、[ツール] メニューの [オプション] をクリックし、[ディレクトリ] タブをクリックする。これにより、次のようなダイアログ ボックスが表示される。

[オプション] ダイアログ ボックス

ここでリストの先頭に表示されているパスが、最新の DirectX のヘッダー ファイルを置いているフォルダになっていなければならない。このデフォルト パスは、C:\DXSDK\Include である。このパスが表示されていない場合は、それをリストに追加し、[ディレクトリ] タブ内のツールバー コントロールを使ってそのパスをリストの先頭へ移動すること。

リンカの検索パス

リンカがリンク ライブラリを検索する際に使う検索パスと、その検索順を確認すること。リンクの検索パスのリストも、[ディレクトリ] タブで確認できる。これを行うには、[ツール] メニューの [オプション] をクリックし、[ディレクトリ] タブをクリックする。ダイアログ ボックスが表示されたら、[表示するディレクトリ] ボックスの [ライブラリ ファイル] をクリックする。これにより表示されたリストの先頭のパスが、最新の DirectX のリンク ライブラリを置いているフォルダになっていなければならない。このデフォルト パスは、C:\DXSDK\Lib である。

プロジェクトのリンク ライブラリ

サンプルと一緒に提供されたプロジェクト ファイルを使う場合は、この設定を確認する必要はない。この設定値はプロジェクト ファイル内で指定されている。新しいアプリケーションをコンパイルする場合は、[プロジェクト] メニューの [設定] をクリックする。これにより、次のようなダイアログ ボックスが表示される。

[プロジェクトの設定] ダイアログ ボックス

アプリケーションが適切な標準 DirectX リンク ライブラリにリンクされることも確認しなければならない。

Visual Studio .NET を使う場合

インクルード ファイルの検索パス

ヘッダー ファイルのパスが正しいこと、DirectX のヘッダー ファイルのディレクトリがコンパイラに最初に検索されるパスになっていることを確認すること。インクルード パスを確認するには、[ツール] メニューの [オプション] をクリックし、[プロジェクト] フォルダを開いて [VC++ ディレクトリ] をクリックする。次のウィンドウが表示される。

[オプション] ダイアログ ボックス

ここでリストの先頭に表示されているパスが、最新の DirectX のヘッダー ファイルを置いているフォルダになっていなければならない。このデフォルト パスは、C:\DXSDK\Include である。このパスが表示されていない場合は、それをリストに追加し、ウィンドウ内の上下矢印ボタンを使ってそのパスを検索リストの先頭へ移動すること。

リンカの検索パス

リンカがリンク ライブラリを検索する際に使う検索パスと、その検索順を確認すること。リンクの検索パスのリストは VC++ ディレクトリ情報を表示するウィンドウにも示される。[ツール] メニューの [オプション] をクリックし、[プロジェクト] フォルダを開いて [VC++ ディレクトリ] をクリックする。ウィンドウが表示されたら、[表示するディレクトリ] ボックスの [ライブラリ ファイル] をクリックする。これにより表示されたリストの先頭のパスが、最新の DirectX のリンク ライブラリを置いているフォルダになっていなければならない。このデフォルト パスは、C:\DXSDK\Lib である。

プロジェクトのリンク ライブラリ

サンプルと一緒に提供されたプロジェクト ファイルを使う場合は、この設定を確認する必要はない。この設定値はプロジェクト ファイル内で指定されている。新しいアプリケーションをコンパイルする場合は、[プロジェクト] メニューの [プロパティ] をクリックする。[リンカ] フォルダを開き、[入力] をクリックする。これにより、次のようなダイアログ ボックスが表示される。

[プロジェクトの設定] ダイアログ ボックス

[追加する依存関係] に表示されるライブラリが適切な標準 DirectX リンク ライブラリであることを確認すること。

コンポーネントのバージョン定数

DirectX の以前のバージョンとの互換性を保持するため、いくつかの DirectX コンポーネントはヘッダー ファイルにさまざまなアプリケーション プログラミング インターフェイス (API) 要素を定義している。通常、影響される要素は、バージョン固有の能力構造体やフラグ セットである。いくつかのヘッダー ファイル部分は、プリプロセッサが不必要な定義を除外するプリプロセッサ条件文で囲まれている。定義済み定数の値は、コンポーネントの特定のバージョンを表している。値が定義されていない場合は、ヘッダー ファイルを記述するときに使われた DirectX のバージョンを識別する値が設定される。Microsoft Direct3D® のヘッダー ファイル (D3D9.h) の例を次に示す。

#ifndef DIRECT3D_VERSION
#define DIRECT3D_VERSION         0x0900
#endif  //DIRECT3D_VERSION

これらの定数に他の値を定義すると、古いバージョンのコンポーネントで新しいバージョンのヘッダー ファイルを使える。たとえば、DirectX 7.0 バージョンの Direct3D のコンパイルに最新のヘッダー ファイルを使うには、DIRECT3D_VERSION に 0x0700 を定義する。

GUID とのリンク

Direct3D はグローバル一意識別子 (GUID) を使ってインターフェイスの部分を識別する。IUnknown::QueryInterface メソッドを使ってオブジェクトがインターフェイスをサポートしているかどうかを判定する場合、その GUID を使って目的のインターフェイスを識別する。

DirectX 9.0 アプリケーションで GUID を使うには、Dxguid.lib ライブラリへのリンクを含め、ヘッダー ファイルおよびソース ファイルから "#define INITGUID" を削除する。これは、以前のバージョンからの変更点であり、以前は他のすべての include および define ステートメントより先に INITGUID を定義して、GUID をリンクしていた。以前のバージョンでは、INITGUID はソース モジュールの 1 つだけに定義する必要があった。

アプリケーションが C または C++ のどちらで記述されているかにより、GUID の使い方が異なる。C では、GUID (たとえば IID_IDirect3D) にポインタを渡すが、C++ では GUID (IID_IDirect3D) に参照を渡す。