【发布时间】:2016-01-04 23:02:01
【问题描述】:
一个现有的非托管 C++ 项目使用了一个用 C# 声明和实现的 COM 组件,我的头文件看起来有点像这样:
#import "MyComponents.tlb" no_namespace named_guids
IComponentXYZ *pComponent;
有时当我右键单击 .h 文件中的 IComponentXYZ 并“转到声明”时,会显示一个 MyComponent.tlh 文件,其中显示了 COM 包装器定义。但其他时候,它说不存在定义。
我可以在 Visual Studio 中手动打开此文件吗?我认为它是自动生成的。虽然对象浏览器窗口允许我检查 TLB 内容,但它不显示原始 COM 方法声明。
【问题讨论】:
-
您可能正在寻找OLE/COM Object Viewer。执行
File > View TypeLib,打开您的 .tlb 文件。该工具本质上是反编译回 IDL。 -
为我工作。当您搜索 CLSID 时,不要忘记查看 HKLM\SOFTWARE 下的 Wow6432Node。
-
This link 现在会让您走得更远。本质上,安装 Windows SDK 以获取 OLE/COM 对象查看器。
标签: c++ visual-studio visual-studio-2013 com