获取导入的.tlb的函数/对象

时间:2011-12-06 07:54:16

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

我有一个带有.tlb文件的程序,用我自己的C ++程序访问一些函数/对象(读取变量等)。我做了一个搜索并导入了.tlb文件:

#import "MyLib.tlb" named_guids no_namespace

我也可以使用oleview.exe中的libid导入它(ProgId不起作用)。

即使我收到一些警告(如下所示),我的程序仍会运行:

C4278 ['TextOut', 'CreateEvent', 'DeleteFile'] is already a macro; use the 'rename' qualifier

但是......我现在如何获得对功能/对象的访问权限? 对不起,我是初学者,请耐心等待。 它是否以某种方式与IDispatch一起工作?我是否需要导入更多的dll,还是需要更多#include指令?

我正在使用Visual C ++ 2008 Express。

-
编辑:好的抱歉,我已经可以访问对象的标题(我在自动完成时看到“应用程序”)但我不知道如何获取对象。

Object Overview

我认为我找到了相关的wikipedia article

1 个答案:

答案 0 :(得分:2)

导入类型库为您提供该库的所有接口和标识符的描述。通常,您不应该包含任何头文件。您通常应该使用COM智能指针创建这些接口并调用它们的方法:

CComPtr pInterface;
pInterface.CoCreateInstance(__uuidof("ClassNameFromTLB"));
pInterface->CallMethod();