预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共188页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

起源及複合檔案 前言西元一九九五年某個夜黑風高的晚上,我的一位老師跟我說:“小楊呀,以後寫程式就和搭積木一樣啦。你趕快學習一些OLE的技術吧......”,當時我心裡就尋思:“開什麼玩笑?搭積木方式寫程式?再過100年吧......”,但作為一名聽話的好學生,我開始在書店裡“踅摸”(注1)有關OLE的書籍(注2)。功夫不負有心人,終於買到了我的第一本COM書《OLE2高級程式設計技術》,這本800多頁的大布頭花費了我1/5的月工資呀......於是開始日夜耕讀.....功夫不負有心人,我堅持讀完了全部著作,感想是:這本書,在說什麼呐?功夫不負有心人,我又讀完了一遍大布頭,感想是:咳~~~,沒懂!功夫不負有心人,我再,我再,我再讀...感想是:哦~~~,讀懂了一點點啦,哈哈哈。............功夫不負有心人,我終於,我終於懂了。800頁的書對現在的我來說,其實也就10幾頁有用。到這時候才體會出什麼叫“書越讀越薄”的道理了。到後來,能買到的書也多了,上網也更方便更便宜了......為了讓VCKBASE上的朋友,不再經歷我曾經的痛苦、不再重蹈我“無頭蒼蠅”般探索的艱辛、為了VCKBASE的蓬勃發展、為了中國軟體事業的騰飛(糟糕,吹的太也高了)......我打算節約一些在BBS上賺分的時間,寫個系列論文,就叫“COM組件設計與應用”吧。今天是第一部分——起源。二、檔的存儲傳說350年前,牛頓被蘋果砸到了頭,於是發現了萬有引力。但到了二十一世紀的現在,任何一個技術的發明和發展,已經不再依靠聖人靈光的一閃。技術的進步轉而是被社會的需求、商業的利益、競爭的壓力、行業的滲透等推動的。微軟在Windows平臺上的組件技術也不例外,它的發明,有其必然因素。什麼是這個因素那?答案是——檔的存儲。打開記事本程式,輸入了一篇文章後,保存。——這樣的檔叫“非結構化檔”;打開試算表程式,輸入一個班的學生姓名和考試成績,保存。——這樣的檔叫“標準結構化檔”;在我們寫的程式中,需要把特定的資料按照一定的結構和順序寫到檔中保存。——這樣的檔叫“自訂結構化檔”;(比如*.bmp文件)以上三種類型的檔,大家都見的多了。那麼檔存儲就依靠上述的方式能滿足所有的應用需求嗎?恩~~~,至少從電腦發明後的50多年來,一直是夠用的了。嘿嘿,下面看看商業利益的推動作用,對檔的存儲形式產生了什麼變化吧。30歲以上的朋友,我估計以前都使用過以下幾個著名的軟體:WordStar(獨霸DOS下的英文編輯軟體),WPS(裘伯君寫的中文編輯軟體,據說當年的市場佔有率高達90%,各種電腦培訓班的必修課程),LOTUS-123(蓮花公司出品的試算表軟體)......微軟在成功地推出Windows3.1後,開始垂涎桌面辦公自動化軟體領域。微軟的OFFICE開發部門,各小組分別獨立地開發了WORD和EXCEL等軟體,並採用“自訂結構”方式,對檔進行存儲。在激烈的市場競爭下,為了打敗競爭對手,微軟自然地產生了一個念頭------如果我能在WORD程式中嵌入EXCEL,那麼用戶在購買了我WORD軟體的情況下,不就沒有必要再買LOTUS-123了嗎?!“惡毒”(中國微軟的同志們看到了這個詞,不要激動,我是加了引號的呀)的計畫產生後,他們開始了實施工作,這就是COM的前身OLE的起源(注3)。但立刻就遇到了一個嚴重的技術問題:需要把WORD產生的DOC檔和EXCEL產生的XLS檔保存在一起。 方案優點缺點建立一個子目錄,把DOC、XLS存儲在這同一個子目錄中。資料隔離性好,WORD不用瞭解EXCEL的存儲結構;容易擴展。結構太鬆散,容易造成資料的損壞或丟失。不易攜帶。修改檔存儲結構,在DOC結構基礎上擴展出包容XLS的結構。結構緊密,容易攜帶和統一管理。WORD的開發人員需要通曉EXCEL的存儲格式;缺少擴展性,總不能新加一個類型就擴展一下結構吧?!以上兩個方案,都有嚴重的缺陷,怎麼解決那?如果能有一個新方案,能夠合併前兩個方案的優點,消滅缺點,該多好呀......微軟是作磁片作業系統起家的,於是很自然地他們提出了一個非常完美的設計方案,那就是把磁片檔的管理方式移植到檔中了------複合檔案,俗稱“文件中的檔案系統”。連微軟當年都沒有想到,就這麼一個簡單的想法,居然最後就演變出了COM元件程式設計的方法。可以說,複合檔案是COM的基石。下圖是磁片檔組織方式與複合檔案組織方式的類比圖:圖一、左側表示一個磁片下的檔組織方式,右側表示一個複合檔案內部的資料組織方式。三、複合檔案的特點 複合檔案的內部是使用指針構造的一棵樹進行管理的。編寫程式的時候要注意,由於使用的是單向指標,因此當做定位操作的時候,向後定位比向前定位要快; 複合檔案中的“流物件”,是真正保存資料的空間。它的存儲單位為512位元組。也就是