.NET では、今までのDLLのバージョン差異による問題が無いように、アセンブリとGACという概念により、バージョンの違う同名のDLLを管理できるようになっています。また、ライブラリのインポートもタイプライブラリなどを用いずにできるようになりました。DLL地獄とか複雑なCOMから開発者は開放されるとのことです。さらに、統一的なアクセス手法により、異なる言語で書かれたライブラリも、言語の違いを意識することなくシームレスにアクセスすることができるようになりました。
このように"Microsoftの説明を聞く限り"では、.NETアセンブリによるライブラリは、いいことずくめのようです。今回は、Delphi 2005で.NETアセンブリのクラスライブラリを作りたいと思います。
まず、「新規作成」メニューの「その他」を選び下図のダイアログを表示させ、Delphi for .NET プロジェクトの「パッケージ」を選びます。ライブラリではありません。(ライブラリで同じことをすると、参照時に「メタデータを読み込めませんでした」とか言われます。
新規作成できましたらすぐに保存します。今回作成するのはライブラリですので、ネームスペースの入ったそれらしい名前で保存します。今回は「iPentec.Standard.test.Package1」で保存してみました。(なんかかっこいいです)
続いて、ひとつユニットを追加します。
こちらのユニットも保存します。やはりネームスペースのついた形で保存してみます。今回は「iPentec.Standard.test.baseunit」としました。
保存したら、BaseUnitにコードを書きます。クラスひとつのシンプルなコードです。引数の和を返す関数メソッドがひとつあります。
プロジェクトをコンパイルします。コンパイルが成功すると、DLLが作成されます。このときのディレクトリのファイルの様子を下図に示しておきます。
iPentec.Standard.test.Package1.dll ができているのが確認できます。
^