寫在前面的話
《com技術內幕》這本書斷斷續續看了一段時間,但是還沒有看完,爲了督促自己看完,以後每看一章就寫一下讀書筆記。
以後的讀書筆記的代碼都是在windows下用gvim+vc6.0的編譯工具進行編輯和編譯的,在gvim的_vimrc文件結尾,添加設置如下
set tabstop=4
syntax on
set nu
set cindent
colorscheme torte
目前暫時添加這些,以後隨着需要會繼續添加
前言
本書的前12章並沒有使用微軟的基礎類庫MFC,所有的示例代碼都可以從命令行進行編譯,一些較複雜的例子,作者寫了makefile。命名規則借鑑MFC和匈牙利命名法
第一章 組件
傳統的編寫程序做法是將應用程序分割成文件、模塊和類,然後將它們編譯並鏈接成一個鐵板一塊狀的應用程序。而用組件建立應用程序的過程則有很大的不同,一個組件同一個微型應用程序類似,都是已經編譯、鏈接好並可以使用的了,應用程序就是由多個這樣的組件打包而得到的,各個組件同其他組件連接起來構成某個應用程序,在需要對應用程序進行修改或者改進時,只需講構成應用程序的某個組件用新版本代替即可。
組件必須滿足兩個條件,1.組件必須動態鏈接,2.組件必須隱藏(或封裝)其內部實現細節。
COM,即組件對象模型,是關於如何建立組件以及如何通過組件建構應用程序的一個規範。遵循com規範編寫的組件能夠滿足對組件架構的所有要求,它能夠滿足對組件的限制條件:
1.COM組件是完全與語言無關的。
2.COM組件以二進制的形式發佈(dll或者exe)。
3.COM組件可以在不妨礙老版本的客戶程序情況下發布。
4.COM組件可以在網絡上被重新分配位置。對遠程機器上的組件同本地機器上的組件的使用方式沒有什麼差別。
COM最值得稱道的地方時我們可以講它作爲一種編寫程序的方法,可以在任何操作系統上使用任何編程語言按COM風格進行編程。
編寫好了COM組件,怎樣按照統一的方式使用它呢,COM庫幫我們解決了這個問題。
COM具有一個被稱作COM庫(COM Library)的win32 API,它提供了非常有用的組件管理服務,COM庫可以保證對所有組件的使用按照相同的方式完成。