プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になってます。
VB6.0で開発を行っております。VBのDLLを作成しております。
そこで、お聞きしたいのが、DLLプロジェクトのプロパティの中に、コンポーネントという項があるのですが、
その中のバージョンの互換性について教えていただきたいと思っております。
まず、根本的にこれは設定をするとどういうことになるのでしょうか?バージョンの互換性という意味がよくわからないので、教えていただきたいと思います。
それと、「互換なし」、「プロジェクト互換」、「バイナリ互換」はどう使い分けるものなのでしょうか?
ヘルプを見てもよくわかなかったので、教えていただきたいと思っております。
何卒よろしくお願い申し上げます。

A 回答 (1件)

こんにちは。


ASPでActiveX.DLLを作るので多少は分かります。

作成したDLLを配布する時にレジストリに登録するのですが、
DLLに改変があった場合にレジストリの再登録が要るかに関わります。

具体的にはクラスID等がレジストリに登録されますが、
DLLを再コンパイルする時にクラスID等を振り直すかどうかの指定のようです。
バインドする方のプロジェクト(COMクライアント)の参照設定のやり直しにも関わります。

[互換なし]
再コンパイルのたびにクラスID等は全て変更されます。

[プロジェクト互換]
クラスIDとライブラリIDは変更せず、インタフェースIDのみが変更されます。
COMクライアントで「ActiveXコントロールのアップグレード」にチェックがあれば、プロジェクトを開く時に最新の参照設定情報が読み込まれます。

[バイナリ互換]
3種類とも変更されません。
従ってCOMクライアントの変更が要らないことになります。
但し、
1.実装済みメソッドの戻り値の型を変更できない。
2.引数の型及び個数を変更できない。
3.メソッドを追加した場合、COMクライアントの再コンパイルが必要。(CreateObjectは別)
の制限があります。

これを知るのに役に立ったのは「VisualBasicMagazine」の2000年8月号でした。
バックナンバーを探して見つかれば詳しい記事があります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
なんとなくはわかったような気がしますが、
バックナンバーを探してみます。
ありがとうございました。

お礼日時:2005/09/15 18:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!