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

jca*_*219 7 com idl typelib clr-hosting mscorlib

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

#import "mscorlib.tlb" raw_interfaces_only              \
     high_property_prefixes("_get","_put","_putref")        \
     rename("ReportEvent", "InteropServices_ReportEvent")
Run Code Online (Sandbox Code Playgroud)

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

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

Eli*_*Eli 9

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

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

#import "C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorlib.tlb" no_implementation
Run Code Online (Sandbox Code Playgroud)

并将以下内容转换为.cpp文件(如stdafx.cpp):

#import "C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorlib.tlb" implementation_only
Run Code Online (Sandbox Code Playgroud)