如何将.tlb文件转换为标题和实现文件?

时间:2011-06-23 22:12:46

标签: com idl mscorlib typelib clr-hosting

我正在尝试转换mscorlib.tlb。 它通常在C ++中使用,如下所示:

#import "mscorlib.tlb" raw_interfaces_only              \
     high_property_prefixes("_get","_put","_putref")        \
     rename("ReportEvent", "InteropServices_ReportEvent")

如何将其转换为标题和实现文件?

我能够使用Visual Studio编译包含上述行的虚拟cpp文件,并生成.tlh文件。不应该有实施文件吗?

1 个答案:

答案 0 :(得分:8)

您可以使用“no_implementation”和“implementation_only”参数将实现和定义拆分为#import。这些生成.tlh(类型库头)和.tli(类型库实现)文件。

我通常将以下内容放入头文件(如stdafx.h):

#import "C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorlib.tlb" no_implementation

以下是.cpp文件(如stdafx.cpp):

#import "C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorlib.tlb" implementation_only