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

ATL COM 服務器開發入門:從向導到客戶端調用全流程

     編輯:VC 教學

目標讀者與範圍

面向 COM 初學者,演示使用 ATL 向導創建進程內 COM 服務器(DLL),實現簡單雙接口對象,並在 VC++ / VB 客戶端調用。不深入 IDL/COM 理論,重工程步驟。

步驟一:ATL COM AppWizard 創建工程

  1. VC++ File → New → Projects,選擇 ATL COM AppWizard。
  2. 專案名:Simple_ATL,路徑:E:\Samples\Simple_ATL。

ATL 向導首頁
圖一

  1. 向導選項:Server Type → Dynamic Link Library (DLL)(進程內服務器必須是 DLL)。其他保持默認,Finish。

服務器類型選擇
圖二

生成文件列表
圖三

步驟二:添加 ATL 簡單對象

  1. 切換到 ClassView,右鍵專案節點 → Add ATL Object。
  2. 選擇 Simple Object,Next。

添加對象類型
圖四

  1. 屬性頁配置:
    • Short Name:First_ATL(其它自動填充)。
    • Threading Model:Apartment(單元模型,默認)。
    • Interface:Dual(雙接口,支持 IDispatch 晚綁定,適合 VB/腳本調用)。
    • Aggregation:No(不支持聚合)。
  2. OK 生成代碼。

對象屬性配置
圖五

步驟三:向接口添加方法

  1. ClassView 中展開接口節點 IFirst_ATL,右鍵 → Add Method。

添加方法入口
圖六

  1. 填寫方法詳情:
    • Return Type:HRESULT(默認,灰色不可改)。
    • Method Name:AddNumbers。
    • Parameters:[in] long a, [in] long b, [out, retval] long* pResult。
  2. OK,向導自動生成 IDL、存根代碼、類聲明與實現骨架。

方法參數配置
圖七

步驟四:實現業務邏輯

打開 First_ATL.cpp,定位 CFirst_ATL::AddNumbers:

// Client.cpp
#import "..\Simple_ATL\Debug\Simple_ATL.tlb" no_namespace

int main()
{
    CoInitialize(NULL);
    IFirst_ATLPtr pObj(__uuidof(First_ATL)); // 智能指針自動管理引用計數
    long result;
    pObj->AddNumbers(10, 20, &result);
    printf("10 + 20 = %d\n", result); // 輸出 30
    CoUninitialize();
    return 0;
}

步驟七:VB 客戶端調用(晚綁定)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved