如何:从 COM 中引用 .NET 类型

就客户端和服务器代码而言,COM 和 .NET Framework 之间大多数差异都是不可见的。 Microsoft Visual Basic 客户端可以在对象浏览器中查看 .NET 对象,该浏览器将公开对象方法及语法、属性和字段,就像该对象是其他任何 COM 对象一样。

对于 C++ 客户端,虽然可以使用相同的工具将元数据导出到 COM 类型库中,但导入类型库的过程要略微复杂一些。 要从非托管的 C++ 客户端引用 .NET 对象成员,应使用 #import 指令引用 TLB 文件(用 Tlbexp.exe 生成)。 从 C++ 中引用类型库时,必须指定 raw_interfaces_only 选项或导入基类库 Mscorlib.tlb 中的定义。

不用 Mscorlib.tlb 导入库

  1. #import 指令中指定 raw_interfaces_only 选项。 例如:

    #import "..\LoanLib\LoanLib.tlb" raw_interfaces_only
    
  2. 包括 Mscorlib.tlb 的 #import 指令。 例如:

    #import "mscorlib.tlb"
    #import "..\LoanLib\LoanLib.tlb"
    

请参见

概念

向 COM 公开 .NET Framework 组件

向 COM 注册程序集

调用 .NET 对象

为 COM 访问部署应用程序