C#coclass - GetTypeInfoCount返回0

时间:2016-06-28 10:41:14

标签: c# com interop com-interop

我有一个C#类,它实现了一个在单独的外部TLB文件中定义的接口,通过互操作导入到我的项目中。

[ComVisible(true)]
[ComDefaultInterface(typeof(IInterfaceFromSeparateTLB ))]
[ClassInterface(ClassInterfaceType.AutoDual)]
[Guid("4FFBBD0D-6F4B-47D4-B4F9-586F8C108BAD")]
[IDispatchImpl(IDispatchImplType.CompatibleImpl)]
public class MyCoClass : IInterfaceFromSeparateTLB {}

当我将MyCoClass的实例传递给以IDispatch作为参数并调用IDispatch :: GetTypeInfoCount的C ++函数时,我总是得到0.为什么?

1 个答案:

答案 0 :(得分:0)

调用IDispatch :: GetTypeInfoCount我忘了检查HRESULT,即0x8002802b(TYPE_E_ELEMENTNOTFOUND)。我在我的DLL旁边放了.TLB文件的副本,然后将“嵌入互操作类型”选项设置为false,问题就消失了。