.NETコンポーネントへの参照設定

プロジェクトの「共通プロパティ」>「参照設定」の中に、
Microsoft::DirectX::Direct3D があるから安心しただけではだめで、
Microsoft::DirectX や、
Microsoft::DirectX::Direct3DXも、追加しておいた方がいいようだ。

using namespace Microsoft::DirectX としていても、
Microsoft::DirectX が、プロジェクトの「共通プロパティ」>「参照設定」の中にないと、実際は参照できていないことになるので注意が必要だ。
(IntelliSenseでも出てこないし、コンパイルも通らない!)

実際、DirectXで、モデルの回転移動操作に用いるMatrix というクラスは、
Microsoft::DirectX::Matrix という位置づけなのだが、
プロジェクトの「共通プロパティ」>「参照設定」の中にMicrosoft::DirectX::Direct3Dしかなく、Microsoft::DirectX が含まれていなかったばっかりに、Matrix なぞは知らんと、エラーが出てしまったりするのである。

この参照するものをコンポーネントというらしい。あるいは「COMコンポーネント」と対比されて「.NETコンポーネント」などと呼んだりもするようだ。まあ呼び方だけで、実体はCOMコンポーネントなのかも知れんが。

コンポーネントを参照設定に追加するという操作は、旧来のC++プログラミングにおける、#include ならびにライブラリ実体のリンクを行う操作をまとめたようなことを行う操作であると考えていいようだ。COMコンポーネントを利用するときに、import ディレクティブを記述するようなことなのかも知れない。

そう考えれば、using namespace Microsoft::DirectX を追記したからといって、コンポーネントを参照設定に追加していない限りは、ライブラリの本体は参照できていないという事実が、違和感なく理解される。

なお、以下の3者のバージョン番号は一貫して同じものを使うのが○なようだ。
Microsoft::DirectX
Microsoft::DirectX::Direct3D
Microsoft::DirectX::Direct3DX