C#プロジェクト(Visual Studio 2008)への参照としてC++ COM DLLを追加します。 VSは参照を追加しますが、生成されたinteropライブラリには元のtypelib(.idl)定義の名前が反映されません。ここに私のライブラリの定義は次のようになります。Visual StudioでCOMリファレンスを追加するとInteropアセンブリのインターフェイスの名前が変更されます
ので、[ UUID(...)、 helpstring( "MYLIB") ] ライブラリーMYLIB {
[
uuid(...),
helpstring("MyCom CoClass")
]
coclass MyComCoClass
{
[default] interface IMyInterface;
interface IMyInheritedInterface;
interface IMyBaseInterface;
};
}
、IMyInterfaceというIMyInheritedInterfaceから継承し、IMyInheritedInterfaceはIMyBaseInterfaceから継承します。このCOMの.dllが追加されると、これらのインターフェイスをすべて使用できるようにします。上記のtypelibに対してinteropアセンブリVSが生成すると、IMyInterfaceはMyInterfaceになります。なぜ、その周りに道があるのですか?
おかげ
優れています。ありがとうございました! –