2010-09-23 113 views
2

我一直在使用進口的ActiveX庫到我的項目在Visual Studio 2008:實例化ActiveX對象

#import "TeeChart8.ocx" named_guids 

現在我想創建由ActiveX庫中暴露的對象。但是,我無法理解API。

有兩個文件是在我用#import,.tli文件和.tlh文件構建項目之後創建的。

在.tlh文件中有如下一行:

_COM_SMARTPTR_TYPEDEF(ITChart, __uuidof(ITChart)); 

我可以看到ITChart當我打開在ITypeLib查看(OLEVIEW)該ActiveX庫TeeChart8.ocx。另外,如果我在我的代碼中輸入ITChartPtr->Invoke,intellisense會告訴我有一大堆需要填充的參數。

本質上,我想知道如何實例化一個ActiveX對象,以及在哪裏必須查看以獲取我需要的信息?

回答

1

當它的一個簡單的COM對象,你可以使用以下(假設名爲TChart的coclass去與命名ITChart接口):

ITChartPtr chart(__uuidof(TChart)); 

欲瞭解更多informati on on使用由#import語句生成的.tlh文件中的_COM_SMARTPTR_TYPEDEF宏定義的ITChartPtr類型,請參閱com_ptr_t

如果它是一個完整的ActiveX控件,則更多的是Victor在他的answer中表示。

+0

是的,有一個名爲TChart的coclass。是否有額外的包括我必須添加除了導入.ocx文件?由於它不會構建,因爲它不識別ITChartPtr。 – Seth 2010-09-23 07:18:07

+0

這與這篇文章的幫助http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/ab212d8a-d0f3-4d59-89c6-3051a4921470 – Seth 2010-10-01 05:02:13