C# プロジェクト (Visual Studio 2008) への参照として C++ COM dll を追加しています。VS は参照を追加しますが、生成された相互運用ライブラリには元の typelib (.idl) 定義の名前が反映されません。私のライブラリ定義は次のようになります。
[
uuid(...),
helpstring("MyLib")
]
library MyLib
{
[
uuid(...),
helpstring("MyCom CoClass")
]
coclass MyComCoClass
{
[default] interface IMyInterface;
interface IMyInheritedInterface;
interface IMyBaseInterface;
};
}
したがって、IMyInterface は IMyInheritedInterface から継承し、IMyInheritedInterface は IMyBaseInterface から継承します。この COM の .dll が追加されたときに、これらすべてのインターフェイスを使用できるようにします。上記の typelib に対して VS が生成する相互運用アセンブリでは、IMyInterface が MyInterface になります。なぜ、それを回避する方法はありますか?
ありがとう