带有构造函数的OLE自动化对象的初始对象引用

Initial Object Reference for OLE Automation Object with constructor

本文关键字:对象引用 对象 OLE 构造函数 自动化      更新时间:2023-10-16

我正在尝试连接一个库,该库通过. tlb导出自动化兼容接口。

TLB列出接口内的function s以检索对象引用;.TLH将它们作为非静态成员函数包括在内,这使得我很难在没有对象引用的情况下调用它们;因此,我在这里遇到了一个鸡生蛋还是蛋生鸡的问题。

从c++中调用function的正确方法是什么?

在.tlb文件上使用#import,然后使用适当的智能指针类型的CreateInstance()方法实例化对象,然后只调用成员函数

像这样(省略错误处理):

 #import ThatTlbFile.tlb
 //at some point in your code you have to init COM
 CoInitialize(0);
 // once COM is initialized
 IInterfaceOfInterestPtr object;
 // this will ask COM to instantiate an object    
 object.CreateInstance( __uuidof( ComClassOfInterest ) );
 object->CallMethod();