この特集のトップページへ
>
Chapter 2:Component Object Model
2.4.4 COMサーバーの登録と登録解除
開発したCOMサーバー(dllファイル)は,そのまま別のコンピュータにコピーしただけでは動作しない。なぜなら,システムのレジストリが設定されないからである。
すでに述べたように,Visual Basicで開発したCOMサーバーはActiveXであり,それ自身にレジストリの登録機能が搭載されている。COMサーバーにレジストリの登録機能が搭載されていれば,次のようにregsvr32ユーティリティを使うことで,その登録情報をシステムのレジストリに書き込むことができる。
regsvr32 COMサーバーになっているdllファイル名
regsvr32は,Windowsに標準でインストールされているユーティリティである。regsvr32によって正しくレジストリが登録されると,Fig.2-28のメッセージが表示される。
Fig.2-28 regsvr32によるレジストリの登録
Visual Basicで開発したCOMコンポーネントを別のコンピュータで実行させたい場合は,このようにファイルをそのコンピュータにコピーしたのちにregsvr32ユーティリティを実行し,レジストリに登録する必要がある。
また,regsvr32を使えば,すでに登録されているレジストリ情報を削除することもできる。削除する場合には,次のように,“/u”オプションを伴なって実行する。
regsvr32 /u COMサーバーになっているdllファイル名
なお,当然のことであるが,COMコンポーネント(COMサーバー)がライブラリや別のCOMコンポーネントを使っている場合には,そのライブラリファイルや使っているCOMコンポーネントを提供するCOMサーバーのファイルも,動作させたいコンピュータにコピーし,正しくレジストリに登録しなければならない。
Visual Basicで開発したアプリケーションであれば,VBRUN*.DLLファイルは動作に必須であるが,それ以外にも,たとえばCOMサーバーがADOコンポーネントを使っているような場合には,動作させたいコンピュータにADOコンポーネントがインストールされていなければならない。
COMコンポーネントの完全な配布を考えるのであれば,COMサーバーのdllファイルだけをコピーするのではなく,Visual Basicに付属のディストリビューションウィザードなどを使って,セットアッププログラムを作ってしまうのも,方法としては悪くないだろう。
Chapter 2 14/15 |