我有一个带有.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。
-
编辑:好的抱歉,我已经可以访问对象的标题(我在自动完成时看到“应用程序”)但我不知道如何获取对象。
我认为我找到了相关的wikipedia article。
答案 0 :(得分:2)
导入类型库为您提供该库的所有接口和标识符的描述。通常,您不应该包含任何头文件。您通常应该使用COM智能指针创建这些接口并调用它们的方法:
CComPtr pInterface;
pInterface.CoCreateInstance(__uuidof("ClassNameFromTLB"));
pInterface->CallMethod();