首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

ATL 簡易 COM 服務器開發教學:從向導到 VC/VB 客戶端調用

     編輯:VC 教學

目標

建立一個 In-Process COM DLL(`Simple_ATL.dll`),包含介面 `IFirst_ATL` 與方法 `AddNumbers(long, long, long*)`,並分別用 VC++ 與 VB 6.0 調用。

步驟 1:建立 ATL COM 專案

  1. VC++ 選擇 ATL COM AppWizard,專案名 `Simple_ATL`。
  2. Server Type 選 Dynamic Link Library (DLL),其餘預設,Finish。

步驟 2:新增 ATL 簡單物件

  1. ClassView 右鍵 → New ATL Object → Simple Object。
  2. Short Name 輸入 `First_ATL`,Attributes 頁:Threading Model = Apartment,Interface = Dual,Aggregation = No。

步驟 3:新增方法

  1. ClassView 展開 `IFirst_ATL`,右鍵 → Add Method。
  2. Method Name:`AddNumbers`,Parameters:[in] long Num1, [in] long Num2, [out] long *ReturnVal。
  3. 雙擊方法跳轉實作,填入:
    *ReturnVal = Num1 + Num2; return S_OK;

步驟 4:編譯並註冊

Build 專案,輸出 `Simple_ATL.dll`。以管理員身分執行 regsvr32 Simple_ATL.dll 註冊。

VC++ 客戶端調用(智慧指標)

#import "Simple_ATL.tlb" no_namespace
CoInitialize(NULL);
ISimple_ATLPtr p(__uuidof(First_ATL));
long result;
p->AddNumbers(10, 20, &result); // result = 30
CoUninitialize();

VB 6.0 客戶端調用

Dim obj As New Simple_ATL.First_ATL
Dim result As Long
obj.AddNumbers 10, 20, result
MsgBox result ' 30

關鍵檔案說明

  • `Simple_ATL.idl`:定義介面與類別,MIDL 編譯產生 `.tlb` 與 Proxy/Stub 代碼。
  • `First_ATL.h/.cpp`:`CFirst_ATL` 實作 `IFirst_ATL`,繼承 `CComObjectRootEx`、`CComCoClass`、`IDispatchImpl`。
  • `dlldata.c`、`Simple_ATL_i.c`:模組進入點與 GUID 定義。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved