我正在尝试通过.TLB连接导出自动化兼容接口的库。
TLB在接口内列出function
以检索对象引用; .TLH将这些作为非静态成员函数包含在内,这使我很难在没有对象引用的情况下调用它们。因此,我在这里有一点鸡蛋和鸡蛋的问题。
从C ++调用function
的正确方法是什么?
答案 0 :(得分:0)
在.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();