我加入一个C ++ COM DLL作为一个C#项目(Visual Studio 2008中)的引用。 VS加上基准然而所生成的互操作库不反映在原始类型库(的.idl)定义的命名。下面是我的库定义是这样的:
[
uuid(...),
helpstring("MyLib")
]
library MyLib
{
[
uuid(...),
helpstring("MyCom CoClass")
]
coclass MyComCoClass
{
[default] interface IMyInterface;
interface IMyInheritedInterface;
interface IMyBaseInterface;
};
}
所以,从IMyInterface的其中IMyInheritedInterface轮流从IMyBaseInterface继承继承。我想,当添加了这个COM的.dll文件所有这些接口的使用。在互操作组件VS产生用于类型库的上方,IMyInterface的变MyInterface的。为什么,是有办法解决它?
谢谢
该类型库导入器,当一个接口是一个组件类的默认界面,它只能由该组件类使用。
所以,一个解决办法是另一个虚拟组件类添加到您的类型库,并为IMyInterface的是默认的界面了。