程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 使用ATL編寫一個簡單的COM服務器

使用ATL編寫一個簡單的COM服務器

編輯:vc教程

  本文的對象是COM編程初學者,其目的旨在描述如何用ATL創建COM服務器,以及如何在VC或VB編寫的客戶端應用程序中調用COM服務器。為了不給初學者增加負擔,本文不打算深入討論COM和IDL的細節,而是展示用ATL創建簡單的COM對象所需要的步驟。希望通過這篇文章能刺激你學習COM編程的欲望。

  第一步:運行ATL COM向導(參見圖一)

  你要做的第一件事情是啟動VC創建一個新的工程。選擇“ATL COM AppWizard”。注意這個向導創建的工程並沒有包含任何初始的COM對象,在完成這個向導之後,要從“ClassView”中用“New ATL Object”命令來指定你想要增加到這個工程中的對象類型。

  在“Project name”編輯框中為工程取個名字:“Simple_ATL”。在“Location”編輯框中指定工程的存放位置,如“E:\samples\Simple_ATL”,然後單擊OK按鈕。

  (圖一)

  你會看到一個選擇屏幕(圖二)。

  (圖二)

  第一部分單選按鈕選項是要創建的服務器類型“Server Type”。因為我們要創建一個進程內服務器(Server DLL),所以應該選擇的類型是動態鏈接庫“Dynamic Link Library——DLL”,注意所有進程內服務器都是DLL。下面是三個復選框不用去管它,它和我們創建的這個工程沒關系。單擊“Finish”按鈕。向導將自動產生相應的文件。然後出現“New Project Information”窗口告訴你向導將要創建一些什麼文件(圖三)。確認後單擊OK按鈕。

  (圖三)

  第二步:創建新的ATL對象

  確定在VC的IDE環境中見到“Workspace View”。也就是工作間視圖。你也可以進入“View”菜單,然後選擇“Workspace”。這個視圖中由三個標簽,單擊“ClassView”標簽。你會看到其中的“Simple_ATL Classes”。選中後單擊右鍵並從彈出菜單中選擇“New ATL Object”。你會見到如下窗口:(圖四)

  (圖四)

  我們就用缺省選擇(Simple Object),也就是簡單對象。單擊“Next”按鈕進入“ATL Object Wizard Properties”,也就是ATL對象向導的屬性對話框(圖五)。

  (圖五)

  在“Short Name”文本編輯框中輸入“First_ATL”。注意向導會自動填寫其余的文本編輯框。單擊“Attributes”標簽。其中有幾組單選按鈕選項和幾個復選框。第一組單選按鈕是線程模型“Threading Model”,我們取缺省值“Apartment Model”。第二組單選按鈕是接口“Interface”,單擊“Dual”,也就是雙接口。最後,第三組單選按鈕是聚合“Aggregation”,因為我們不想涉及接口的聚合,所以在此選擇“No”。至於底下的三個復選框,我們不用管它,單擊OK按鈕讓向導創建新的“ATL Simple Object”

  第三步:添加方法

  如果你單擊工作間的“ClassView”標簽,你會注意到向導在裡面添加了一些內容。添加一個方法很容易,(圖六)選中“IFirst_ATL”後單擊右鍵並選擇“Add Method”。

  (圖六)

  單擊“Add Method”後,你會看到“Add Method to Interface”對話框(圖七)。

  (圖七)

  在“Return Type”編輯框中(已成灰色)這個方法的返回值已經缺省為 “HRESULT”。大多數情況下都應該是這個值類型。下一個編輯框是方法名“Method Name”,輸入方法名“AddNumbers”。最後一個編輯框是要你輸入希望使用的參數“Parameters”。由於我們打算將兩個數字相加,然後返回相加結果,所以要使用三個參數。最後一個參數是一個指針。現在你不用去關心繁雜的接口定義語言IDL,只要在這個參數編輯框中輸入如下內容:

本文示例代碼或素材下載

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved