我该如何将.tlb文件转换为头文件和实现文件?

9

我正在尝试转换mscorlib.tlb。 在C++中通常这样使用:

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

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

我可以使用Visual Studio编译包含上述代码行的虚拟cpp文件,并生成.tlh文件。难道不应该还有实现文件吗?


点赞 - 告诉我如何消除 ReportEvent 的警告。 - Eli
1个回答

10
您可以通过在#import中使用"no_implementation"和"implementation_only"参数来分离实现和声明。这些将生成.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

我相信你想说的是“实现和声明”,而不是定义。 - dmytro.poliarush

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接