2011-11-18 74 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函數。我已經找到了與組件對話的根對象,它已註冊並且具有我需要的對象的工廠方法。 –

相關問題