COM 相互運用機能(.NET)

Microsoft Visual Studio では、ネイティブ .NET および COM インタフェースの両方を同じプロジェクトで使用することができます。COM 相互運用機能を使用すれば、Visual Basic 6 または VBA で書かれた可能性のある既存のコードを、完全に書き直すことなくマイグレートすることができます。Microsoft Visual Studio で作成されたプロジェクトから AutoCAD オートメーション オブジェクトにアクセスするには、次のファイルへの参照を作成します。

注: 上記のタイプ ライブラリは、ObjectARX SDK の一部としても使用できます。

これらの参照により、次のプライマリ相互運用アセンブリが使用できるようになります。

この相互運用機能アセンブリはグローバル アセンブリ キャッシュに置かれ、オートメーション オブジェクトを .NET の対応するオートメーション オブジェクトにマップします。

タイプ ライブラリを参照した後、次の例に示すように、ライブラリに定義されているオブジェクトを利用するコード モジュールに Autodesk.AutoCAD.Interop および Autodesk.AutoCAD.Interop.Common 名前領域を読み込む必要があります。

VB.NET
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Interop.Common
C#
using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;

次の例に示すように、ライブラリに定義されているオブジェクトに基づいて変数を宣言することができます。

VB.NET
Dim objAcApp As AcadApplication
Dim objLine As AcadLine
C#
AcadApplication objAcApp;
AcadLine objLine;

相互運用機能アセンブリは、VBA から VB.NET に移行する際に役立つ場合があります。ただし、.NET および AutoCAD .NET API の機能を十分に活用するには、既存の VBA コードを書き直す必要があります。

次のオブジェクトからの次のプロパティを使用することで、対応する .NET オブジェクトから COM オブジェクトへのポインタを取得することができます。

COM オブジェクトは、FromAcadXxx 静的関数を使用して .NET オブジェクトから取得することができます。たとえば、Database.FromAcadDatabase は、COM データベース オブジェクトから .NET データベース オブジェクトを取得します。

アプリケーションを作成および参照する

AutoCAD .NET アプリケーションは、AutoCAD オートメーション プロジェクトと同じタイプ ライブラリ(acax24enu.tlb)を使用することができます。このタイプ ライブラリは <ドライブ>:¥Program Files¥Common Files¥Autodesk Shared にあります。

また、AutoCAD .NET アプリケーションでは、CreateObject 関数、GetObject 関数、GetInterfaceObject 関数に、同じバージョン依存 ProgID を使用します。

製品の ProgID を使用して、AutoCAD アプリケーション("AutoCAD.Application")の新しいインスタンスを作成したり、リリースのメジャー番号とマイナー番号を指定してアプリケーションの対象を特定のリリースに制限したり、バイナリ互換性のあるすべてのリリースを対象にすることができます。

例:

注: インスタンスを作成するリリースがインストールされている必要があります。

インプロセス DLL (クラス ライブラリ)から ActiveX/COM を使用して、AutoCAD アプリケーション オブジェクトを参照する場合、Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication プロパティを使用することができます。