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

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

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

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

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

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

COMCOM组件设计与应用(一)起源及复合文件作者:HYPERLINK"mailto:good_yf@sina.com"杨老师 一、前言公元一九九五年某个夜黑风高的晚上,我的一位老师跟我说:“小杨呀,以后写程序就和搭积木一样啦。你赶快学习一些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的基石。下图是磁盘文件组织方式与复合文件组织方式的类比图:图一、左侧表示一个磁盘下的文件组织方式,右侧表示一个复合文件内部的数据组织方式。三、复合文件的特点 复合文件的内部是使用指针构造的一棵树进行管理的。编写