日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ATL学习笔记〔一〕

發布時間:2023/12/15 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ATL学习笔记〔一〕 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ATL 即活動模板庫,是一套基于模板的 C++ 類,使用這些類可以容易地創建小型、快速的組件對象模型 (COM) 對象。它具有對主要 COM

功能的特殊支持,包括:IUnknown、IClassFactory、IClassFactory2 和 IDispatch 的常用實現;雙重接口;標準 COM 枚舉數接口;連

接點;分開的接口;ActiveX 控件。

[[
看來,ATL是用C++開發COM的一個很好的選擇!
]]

ATL 代碼可以用來創建單線程對象、單元模型對象、自由線程模型對象或既是自由線程又是單元模型的對象。

模板有一些像宏。與使用宏一樣,調用模板將使它展開(伴隨適當的參數替換)為已經編寫的代碼。但是,模板比這更進一步,它允許基于

作為參數傳遞的類型創建新類。這些新類能夠實現以類型安全的方法執行在模板代碼中表示的操作。
模板庫(如 ATL)與傳統的 C++ 類庫的區別在于:它們通常只作為源代碼(或作為具有少量的提供支持的運行時的源代碼)提供,并且在

本質上沒有固有的分層結構或沒有必要有分層結構。不是從類中派生以得到所需的功能,而是從模板中實例化類。

ATL 使您可以很容易創建 COM 對象、自動化服務器和 ActiveX 控件。ATL 為許多基本的 COM 接口提供內置支持。
ATL 作為在應用程序中包括的源代碼提供。ATL 還使一個 DLL (atl71.dll) 可用,該 DLL 包含可以在多個組件之間共享的代碼。但是,該

DLL 并非必要。

[[
看過一些講COM的書上說:COM只是一種規范,而它的表現形式通常是一個DLL!但是并不絕對是DLL!
那還有什么形式呢?
]]


使用 ATL
ATL 對于用 C++ 創建 COM 組件和節省空間都是一種快速簡便的方法。如果不需要 MFC 自動提供的所有內置功能,使用 ATL 創建控件。

使用 MFC
MFC 允許創建具有完整功能的應用程序、ActiveX 控件和活動文檔。如果已經使用 MFC 創建了控件,可能需要繼續使用 MFC 進行開發。

當創建新控件時,如果不需要 MFC 的所有內置功能,可考慮使用 ATL。

[[
呵呵,看來ATL比MFC要好不少了!最起碼體積占優勢呀!

不過,到這里可以有一些肯定的問題了,ATL:活動模板庫、MFC基本類庫!都是類庫!ATL和MFC是平行的!不要搞出笑話!
]]


活動模板庫 (ATL) 是一套基于模板的 C++ 類,用以簡化小而快的 COM 對象的編寫。


[[
ATL是一套現成的類庫,提供給程序員,目的是編寫COM對象的!
]]

使用 ATL 項目向導的“應用程序設置”頁為新 ATL 項目設計和添加基本功能。

屬性化
默認值。創建使用屬性的 ATL 項目。選擇此選項后,module 屬性將插入到項目的 .cpp 文件中。該屬性自動實現 DllMain、

DllRegisterServer、DllUnregisterServer、DllGetClassObject 和 DllCanUnloadNow。ATL 項目向導生成兩個項目:支持屬性的框架

ATL DLL 項目(稱為 ProjName)和代理/存根 (stub) 項目(稱為 ProjNamePS)。
屬性化項目不允許 MFC 支持和合并代理/存根 (stub) 代碼。

默認情況下,其他將對象和控件插入項目的 ATL 向導使用屬性化代碼。


服務器類型
從三種服務器類型中選擇一種:

動態鏈接庫 (DLL)
選擇以創建進程內服務器。
可執行文件 (EXE)
選擇以創建本地進程外服務器。此選項不允許 MFC 或 COM+ 1.0 支持。它不允許合并代理/存根 (stub) 代碼。
服務 (EXE)
選擇以創建當 Windows 啟動時在后臺運行的 Windows 應用程序。此選項不允許 MFC 或 COM+ 1.0 支持,也不允許合并代理/存根 (

stub) 代碼。
附加選項
注意?? 所有的附加選項僅適用于 DLL 項目。
允許合并代理/存根(stub)代碼
選擇“允許合并代理/存根(stub)代碼”復選框是為了需要封送處理接口時比較方便。此選項在與服務器相同的 DLL 中放置 MIDL 生成的代理

和存根 (stub) 代碼。
支持 MFC
選擇以指定對象包含 MFC 支持。此選項將項目鏈接到 MFC 庫,以便可以訪問它們包含的任何類和函數。
支持 COM+ 1.0
選擇修改項目生成設置以支持 COM+ 1.0 組件。除標準庫列表以外,向導還添加了 COM+ 1.0 組件特定庫 comsvcs.lib
另外,當啟動應用程序時 mtxex.dll 在主系統上延遲加載。

支持組件注冊器?? 如果 ATL 項目包含對 COM+ 1.0 組件的支持,則可以設置此選項。組件注冊器使 COM+ 1.0 對象得以獲取組件列表、注

冊組件或注銷組件(個別或同時)。



從MSDN里學習

總結

以上是生活随笔為你收集整理的ATL学习笔记〔一〕的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。