【问题标题】:C# coclass - GetTypeInfoCount returns 0C# coclass - GetTypeInfoCount 返回 0
【发布时间】:2016-10-30 15:32:28
【问题描述】:

我有一个 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。为什么?

【问题讨论】:

    标签: c# com interop com-interop


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      相关资源
      最近更新 更多