2011-11-18 129 views
1

我试图通过.TLB导出自动化兼容接口的库。具有构造函数的OLE自动化对象的初始对象引用

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

从C++调用function s的正确方法是什么?

回答

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(); 
+0

不太什么,我一直在寻找(我知道这一点),但显然我的假设,这个函数是一个构造函数犯了一个错误 - - 而是,我所看到的界面有一个打开相关对象的方法,由于没有注册类实现接口,我假设这些是ctor函数。我已经找到了与组件对话的根对象,它已注册并且具有我需要的对象的工厂方法。 –

相关问题