[VB6] プロジェクト互換とバイナリ互換の使い方

文書翻訳 文書翻訳
文書番号: 161137 - 対象製品
この記事は、以前は次の ID で公開されていました: JP161137
すべて展開する | すべて折りたたむ

目次

概要

互換性の設定を使用すると、Visual Basic のプロジェクトで作成した ActiveX コンポーネントの古いバージョンに対する、プロジェクトの互換性を決定することができます。

ユーザーが作成する ActiveX コンポーネントには、作成したメソッドやプロパティをすべて含んだデフォルトのインターフェイス (たとえば、ActiveX コンポーネントのクラス名が CName であれば、CName_D) が含まれています。ユーザーのクラスでイベントが発生する場合は、IConnectionPointContainer と呼ばれるインターフェイスも使用できます。ActiveX コントロールまたはサーバーをビルドすると、これらのインターフェイスには固有の識別子が付与されます。作成したコントロールやサーバーに修正を加える場合、上記のインターフェイスも変わることがあります。そのコンポーネントの古いバージョンを使っているアプリケーションは、この時点でエラーになる可能性があります。すべてのアプリケーションで、新しいインターフェイスも古いインターフェイスも正常に動作することを保証するには、適切な互換性の設定を指定する必要があります。

詳細

プロジェクトの互換性は、[プロジェクト プロパティ] ダイアログ ボックスの [コンポーネント] タブで設定できます。

Visual Basic には、次の 3 つの異なる互換性設定が用意されています。
  • 互換なし
  • プロジェクト互換
  • バイナリ互換

互換なし

この設定を使用すると、互換性は得られません。Visual Basic は、プロジェクトをビルドまたはコンパイルするたびに、新しいインターフェイス ID とクラス ID を作成します。ビルドしたそれぞれのバージョンは、コンポーネントの特定のビルドで動作するように作成したアプリケーションでしか使用できません。

プロジェクト互換

この設定を使用すると、自分のプロジェクトを特定のコンポーネント プロジェクトに対して互換性があるものにできます。タイプ ライブラリの情報は新たに生成されますが、タイプ ライブラリの識別子は維持され、テスト プロジェクトは引き続きそのコンポーネントを参照できます。この設定は、テスト中に互換性を維持するためのものです。したがって、いったんコンポーネントを公開してしまった後は、[互換なし] の設定と同じ動作になります。

バイナリ互換

プロジェクトをコンパイルする際、Visual Basic は必要な場合にしか新しいクラス ID とインターフェイス ID を作成しません。以前のバージョンのクラス ID とインターフェイス ID は保持され、古いバージョンを使ってコンパイルしたプログラムは問題なく動作します。互換性が失われるような変更を加えると、Visual Basic によって警告が表示されます。既に公開した ActiveX コンポーネントの古いバージョンとの互換性を維持する必要がある場合は、この設定を使用してください。

関連情報

MSDN オンライン : 「コンポーネントのデバッグ、テスト、配置」

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 161137 (最終更新日 2001-01-09) をもとに作成したものです。

プロパティ

文書番号: 161137 - 最終更新日: 2003年1月22日 - リビジョン: 1.0
この資料は以下の製品について記述したものです。
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
キーワード:?
kbhowto kbvbp500 kbvbp600 kbgrpdsvb kbusage KB161137
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com