一つのアプリケーションをコーディングしていると、コードの量が異様に長ったらしくなってしまうこと、ありますよね!?一度書いたコードを転用したかったり、前回のアプリケーション開発でコーディングしたクラスモジュールを使いたかったり…

オブジェクト指向はオブジェクト同士を部品のようにつなぎ合わせて再利用ができるというメリットがあり、上記のような要望にこたえるためにあるといっても過言ではありません。しかし、現状のオブジェクト指向、特にABが採用するオブジェクト指向には大きな欠点が存在します。

それは一度ネイティブコード化してしまったモジュールに対するオブジェクト参照が不可能な点です。

ABのオブジェクト指向はソースコードレベルでの転用においては十分な威力を発揮しますが、一度コンパイルしてネイティブコード化されたモジュールに関してはそれをオブジェクトとして扱うことができません。通常、コンパイルされた外部モジュールを呼び出す際にはDLL化が活用されますが、これは単一関数をエクスポートするだけであり、その中にあるオブジェクトを継承するなどの動作は行えません。

そんな問題に対処できるのがCOM(Component Object Model)です。オブジェクトモジュールを様々なEXEから参照させる場合にどのように自身のDLLと連結させるのかを定義するのがCOMインターフェイスです。オブジェクトが提供する動作をインターフェイス関数として用意すれば、COM対応型のDLLを作成できます。

ActiveBasic Ver4.xでは、COM対応型のDLLを作成できませんでしたが、現在開発中のActiveBasic Ver5.0では、COMの呼び出し及び作成が可能な、双方向のCOMサポートを実現させます。

ってことはただ単にCOM対応型DLLが作れるようになるだけ!?

もちろん、それだけではありません。

続きは次回・・・