使用BCB来制作COM元件.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
開始必須要聲明的,這不是教學文章,只能說是一篇說明文章,作者無法確定內容有無技術上的錯誤,如內容有任何問題,也歡迎寄信給我予以更正 Mail: huge.huang@ 設計COM物件(Borland C++ Builder 5) 本篇文章為說明如何實作出一個COM Object的方法。首先點擊BCB視窗界面左上面的File→New(Fig 1),至ActiveX的目錄下新增一個ActiveX Library。 Fig 1 在呼叫出一個新增的ActiveX Library後,接下來假設要完成一個使用在網頁語言內可呼叫的DLL Method,在同一目錄下,選擇Active Server Object(Fig 2)。 Fig 2 在選擇了新增Active Server Object之後,BCB會跳出一個New Active Server Object的視窗(Fig 3)出來,以便讓我們可以將屬性填寫上去 CoClass Name:Active Server Object類別的名字 Threading Model:略 Active Server Type Page Level Event Methods:略 Object Context:略 Options Generate a template test script for this object:略 Fig 3 Fig 4 在設定完Active Server Object之後,接下來便是要進行Type Library的設定,在此我們必須完成這一個COM物件所需的輸入及輸出的界面,以此說明文件為例,我要做一個加法的動作,或稱之為一種Method,那麼我就必需有二個輸入及一個輸出,下列便是說明如何設定Type Library的Method 我們看到一個新視窗,一個.tlb的檔案,這個便是一個Type Library,而我們所需要做的,便是設定這一個Library所需要的輸入及輸出,所以我們必須新增一個Method(Fig 4),或者可以在Itest上按右鍵(名稱為Itest是因為剛才在設定CoClass Name的時候,我將之設定為test,而左上角的OPERATOR.tlb則是將原本預設為Project1的專案名稱更改為OPERATOR,而此COM元件的專案名稱便會根據剛剛所設的專案名稱而更改。除了按下視窗上方按下New Method的方法之外,我們也可以在Itest這個icon上面按下滑鼠右鍵,選擇New Method(Fig 5),此兩種方法皆可以達到新增一個Method的目的,而延續下來所要做的動作便是設定這個Method的輸入及輸出了。 Fig 5 接下來我們切換到剛剛所新產生的Method之下(我將Method的name設定為add)。將Text目錄轉移到Parameters目錄之下,我們便是要在此設定此一新增的Method所需要的輸入及輸出。在設定上,必須要注意的是,輸出(output)必須設定為指標型態,也就是 Element_Type *(例:long *),BCB才能夠針對這個輸出做出正確的動作。於是我們藉由add這個Method的定義得知,我們需要有二個輸入及一個輸出(Return Value),所以我們將add設定為二個輸入,分別稱做long(長整數),名稱為in1及in2,而輸出則設定為long *,名稱為output。由於這個output為Return Value,所以在設定的時候,必須勾選為Return Value這個選項,如下圖(Fig 6)。在做完這些之後,記得先把檔案進行儲存。最後要做一個非常重要的動作,那便是Export To IDL,如果沒有做完這個最後的動作,那麼剛剛設定的Method都白費了,關於Export To IDL如下(Fig 7) Fig 6 Fig 7 按下Export To IDL,接著我們再把程式碼填入即可完成作業,在testImpl.h之下宣告add這個Method public: STDMETHOD(OnEndPage()); STDMETHOD(OnStartPage(LPUNKNOWN AScriptingContext)); STDMETHOD(add(long in1, long in2, long* output)); }; 藍色的部份便是我們所需要做為add這個 Method這個宣告,接下來,在testImpl.cpp這個檔案之下新增以下的程式 STDMETHODIMP TtestImpl::add(long in1, long in2, long* output) { *output = in1+in2; return S_OK; } add這個Method的動

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档