COM編程培訓
COM編程培訓
課程簡介:
課程重點介紹動態連接庫、調用約定、回調函數、類成員函數作為回調函數、C++對象內存布局、字符串處理、COM基礎、COM開發等內容。
課題
內容
準備知識
動態連接庫
- 組成
- 初始化
- DLL數
- DLL輸出表
- DLL使用:靜態鏈接和動態加載
- 按序號訪問DLL函數/數據
調用約定
- C調用約定
- C++調用約定
- 其他調用約
回調函數,類成員函數作為回調函數
- C++對象內存布局
- 簡單C++對象內存布局
- 虛函數表
- 函數重載時的內存布局
字符串處理
- 字符串編碼
- TCHAR
- BSTR
- CComBSTR和_bstr_t
COM基礎
概念
- 組件,接口和容器
- COM歷史
- COM架構
接口
- IUnknow接口
- 容器接口和功能接口
COM類
- 類廠
- 包容和聚合
COM庫
- 接口,COM類,COM類廠和COM庫間關系
- 進程內組件和進程間組件
COM開發
手工COM開發組件端
- 接口聲明
- __declspec(novtable)
- 理解HRESULT類型
- 定義COM類
- COM對象生命周期管理
- 實現引用計數
- 實現接口查詢
- 定義類廠
- 類廠生命周期管理
- 類廠接口查詢
- 類廠創建COM對象實例
- 實現COM庫回調函數
- DLL COM組件注冊
手工COM開發客戶端
- COM庫初始化和卸載
- 獲得接口
- CComPtr智能指針
EXE COM組件開發
- EXE組件的WinMain
- 客戶端創建指針時指定上下文:CLSCTX_LOCAL_SERVER
快速演練:使用ATL開發COM組件
提高
雙調度
- Invoke方法
- VARIANT結構
- CComVariant 操作變體類型
- Invoke方法調用示例
- 使用類型庫
- 腳本語言中使用雙調度
COM連接點模型
包容和聚合
COM內存管理
COM線程模型
COM對象,寓所和線程
- 寓所的概念
- 寓所的創建
- 跨寓所傳遞COM對象
結構化存儲
復合文檔
調試與診斷
分布式COM介紹
從COM到COM+
使用其他語言開發COM:C#
?
?
?
?
?
?
?
?
?
?