如何在VS C ++中使用.tlb类型创建接口方法?

时间:2010-03-18 21:55:21

标签: c++ visual-studio-2008 com atl typelib

背景:

  1. .TLB文件包含用“X”语言编写的接口。我没有.h,.idl,.tlh或任何其他头文件 - 只有.TLB文件。语言“X”不会导出兼容的.h,.idl等
  2. 我使用VS向导将ATL简单对象添加到我的ATL项目中。
  3. 我想在我的简单ATL对象的接口中添加一个方法,该对象使用一个.TLB定义的参数类型。

    // Something like the following in the .idl file:
    interface ISomeInterface : IUnknown {
       HRESULT SomeMethod([in] ITypeFromTLB* aVal); // ITypeFromTLB declared in .TLB file.
    };
    

    我该怎么做?我希望有一个向导,或.idl接口声明中的一行,它会带来.tlb信息。 midl的include(没有.tlb),import(没有tlb)和importlib(仅限库)似乎没有提供解决方案(我需要代理/存根工作,所以我不能把它使用importlib命令在库声明中)。

2 个答案:

答案 0 :(得分:2)

在cpp / h中使用#import将TLB接口带到命名空间。

答案 1 :(得分:1)

在Visual Studio命令行上执行操作。然后文件 - >查看类型库,为其提供foo.tlb的完整路径。现在在ITypeLib Viewer中执行文件 - >另存为..您可以从那里导出所有3(.h,.idl,.c)。