1
我试图通过.TLB导出自动化兼容接口的库。具有构造函数的OLE自动化对象的初始对象引用
TLB在接口内列出function
s以检索对象引用; .TLH将这些作为非静态成员函数,这使我很难在没有对象引用的情况下调用它们;因此,我在这里遇到了一些鸡与鸡的问题。
从C++调用function
s的正确方法是什么?
我试图通过.TLB导出自动化兼容接口的库。具有构造函数的OLE自动化对象的初始对象引用
TLB在接口内列出function
s以检索对象引用; .TLH将这些作为非静态成员函数,这使我很难在没有对象引用的情况下调用它们;因此,我在这里遇到了一些鸡与鸡的问题。
从C++调用function
s的正确方法是什么?
在.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();
不太什么,我一直在寻找(我知道这一点),但显然我的假设,这个函数是一个构造函数犯了一个错误 - - 而是,我所看到的界面有一个打开相关对象的方法,由于没有注册类实现接口,我假设这些是ctor函数。我已经找到了与组件对话的根对象,它已注册并且具有我需要的对象的工厂方法。 –