



文档简介
第18卷第11期 武汉科技学院学报 2005年1 1月 JOURNAL OF WUHAN UNIVERSITY OF SCIENCE AND ENGINEERING Vo1I8 NOIl NOV2005 l引言 COM技术在毕业设计中的应用 刘晓刚 (十堰广播电视大学网络中心,湖北十堰442000) 摘要:COM是Microsoft提出的组件标准,并在Windows中越来越广泛地使用它,具有与语言无关、进程透 明、可重用等优点。COM是非常有前景的技术值得甓们去掌习研究。在毕业设计中应用COM技术有多 种方式意义主要是丰富毕业设计课题 激发掌生的掌习兴趣、满足人才市场的多元需要。 关键词:COM:MIS:DLL:ActiveX:毕业设计 中图分类号:TP312 文献标识码:A 文章编号:1009-5 J60(2005)-01l704 现在互联网上有人质疑说大学生的毕业设计没有什么用,不如取消了将时间留给学生找工作。本人对这个看法不以 为然,认为毕业设计作用巨大、意义重大,只能加强不能削弱,现在的情况恰恰说明我们教师的工作没做好,应该加强这方 面的工作,把学生的注意力吸引回设计中 认真完成最后阶段的学习。细细推敲,学生不重视毕业设计的原因还有很多,其 中一条就是毕业设计的选题太单调,多年来大同小异,没有创新,沿袭着一条老路,没有吸引力。本人是计算机专业老师, 发现多年来计算机专业毕业设计集中在MIS(ManagementInformation System,管理信息系统)的设计开发上,虽然使用了不同 语言和不同工具,但开发过程和技术涉及面基本一样。诚然,这种设计开发可以使学生熟悉软件工程的开发过程,培养开发 工具的使用经验,但从专业技术的角度来讲,其深度不大而且过于雷同,感觉上是每个人都在走同样的路,缺乏创新,对拔 尖学生的煅炼也不够。在大力推行素质化教育的今天,我们应该根据学生的个体差异设计多种层次的设计课题,促进毕业设 计的多元化。本文就探讨如何把COM技术应用于毕业设计,开拓毕业设计的新思路。 2 COM简介 2I C0M概念 随着计算机科学的不断进步,软件系统越来越复杂,尤其是Intranetlnternet的飞速发展,软件应用置身于更加广阔的环 境中,对软件设计提出了更高的要求,在这样情况下,面向对象的思想已经难以适应这种分布式软件模型,于是组件化程序 设计思想得到迅速的发展。为此,OMG(ObjectManagementGroup,对象管理组织)和Microsoft分别提出T CORBA(Common Object Request Breaker Architecture,公共对象请求中介体系结构)和COM标准,目前CORBA模型主要应用于UNIX操作系 统平台,而COM则主要应用于Microsoft Windows操作系统平台。 COM全名是Component Object Model,中文可译作“组件对象模型”,微软提出这个标准后,在Windows中越来越广泛 地使用它。组件实际上是一些小的二进制可执行程序,它可给应用程序、操作系统和其它组件提供服务,开发COM组件就 象开发动态的、面向对象的API。多个COM对象连接起来可以形成应用程序或组件系统,并且组件可以在运行时、在不重 新链接和编译应用程序的情况下被卸下或替换掉。 COM非常短小精悍、优美,可以透明地分布到网络上,并且是与语言无关的,目前已经开发出来的COM组件比其他 任何类型的组件都要多得多。微软的许多技术,如AdtiveX、DirectX以及OLE都是基于COM建立起来的,而且微软的开发 人员也大量使用COM组件来定制他们的应用程序及操作系统。我们有理由相信在不久的将来,COM将成为构建应用程序 收稿日期:20058-25 作者简介:刘晓刚(1970)。男。高级工程师,研究方向:计算机应用 维普资讯 ll8 武汉科技学院学报 2005年 最普遍的方法。 22 COM特性 221 COM组件是完全与语言无关的 COM规范的定义不依赖特定的语言,因此,编写组件对象所使用的语言与编写客户程序使用的语言可以不同,只要它 们都能够生成符合COM规范的可执行代码即可。COM标准采用的是二进制代码级的标准,面向对象的编程语言采用的是 源代码级的标准。在面向列象编程语言中定义的对象,只能在同样的语言中被重复使用,大大限制了重用。COM对象把OOP 语言中的对象封装起来,并提供一致的接口,使得它可以被各种不同的语言所使用,COM的语言无关性实际上为我们跨语 言合作开发提供了统一标准,差不多每种语言在实现时都提供了对COM的支持,如VisualcC+、VisualBasic、Visual J+、 Delphi、C+Builder等都支持COM组件的开发和使用。 222进程透明特性 COM所提供的组件对象在实现时有两种进程模型:进程Ix,象和进程外对象。进程内对象在客户进程空问中运行,进 程外对象运行在同一机器上另一个进程空间或者在远程机器的进程空间中。虽然COM对象有不同的进程模型,但这种区别 对于客户程序来说是透明的,因此客户程序在使用组件对象时可以不管这种区别的存在,遵照COM规范即可。 223可重用性 可重用性是任何对象模型的实现目标,尤其对于大型的软件系统,可重用性非常重要。由于COM标准是建立在二进制 代码级的,因此它的可重用性与一般的面向对象语言如c+中对象的重用过程不同,它使用包容和聚合方式这两种机制来实 现对象的重用。 23 COM的前景 在32位Windows版本中,很多系统部件以COM的形式实现,除了考虑与以前版本的SDK兼容之外,一些新增的组件 均提供了COM接I;3,这样做的好处是不仅使各种开发语言可直接调用系统提供的功能,也有利于在特殊情况下对组件的单 独升级,而这种升级对于MSDOS系统和l6位Windows系统是很困难的事。 有一些用COM形式提供的组件模块极大地丰富了Windows功能,也使Windows功能扩展更加灵活,如DirectX多媒体 软件包、RDO(I emotedataobject,远程数据对象)和DAO(data accessobject,数据访问对象)数据库访问对象库、Inte!netClient SDK等等,COM已成为Windows平台的组件模型标准。 数据库方面OLE DBADO以COM方式为数据访问提供了一致的接口,已经被应用于Miciosoft的各种产品中,并且 Microsoft推出的Visual Studio开发工具套件也提供了OLE DB组件的开发支持。 Intranet应用上现在已经不再局限于由一个厂家提供所有的产品,通常是由一些专业厂商提供其专业产品,再进行系统 集成。从软件行业的发展来看,系统集成所占的比重越来越大,而系统集成的关键问题是软件之问的接口,如果所有的软件 都遵从了同样的接口标准,则不同软件产品之间的交互就有了基础。显然COM可以担当起这样的标准,而且事实上已经发 挥了这样的作用。另外在目前流行的多层软件结构模型中,位于中间层的业务层主要通过COM组件来实现。 COM在Intei net相关软件中的发展最能体现COM的优势,因为Internet软件要求有很好的开放性,开放性就意味着要 遵从标准,在Windows平台上,COM就是这样的标准。由于COM已经渗透到Internet各种软件中,包括一些基本的协议软 件,所以随着Intel net的发展,COM必将获得更为广泛的应用。 从上面五个方面来看,COM是很有前途的,当然这种前途主要依赖于微软视窗系统的持续发展,列-_于这样重要的技术, 我们的学生就应该尽早接近甚至掌握它,通过毕业设计来接触和了解COM是一个好办法。 3 COM在毕业设计中的应用 31 COM的实现 COM是以win32动态链接库(DLL)或者可执行文件(EXE)的形式发布。这里要澄清些错误观点:首先,COM不是 一种计算机语言,把COM同某种计算机语言(如c+、VB)相比较是没有意义的;其次,不要把DLL和COM做比较,因 为COM技术正是利用了DLL的动态链接能力才得以实现的,而现在一般认为,利用DLL动态链按能力最佳的方法是COM。 可以用来编写COM的开发工具很多,有Visual J+、Delphi、c+Builder、VB、VC、MFC、ATL、WTL等等,难度有 大有小,使用VB、Delphi开发COM难度较小,而采用C、VC、MFC、ATL、WTL开发较难,对于学生来说这样更有挑战 性,能够适应不同水平层次的要求,丰富毕业设计的课题范围。运行的平台应该是微软的Windows操作系统系列。 32适合对象 维普资讯 第11期 刘晓剐:COM技术在毕业设计中的应用 lJ9 应该说COM具有一定难度,并不适合所有的学生。我们的建议是:计算机本、专科学生,至少掌握了一种常用的开发 工具,具有一定的开发和学习研究能力,并有充足的设计时间(一般是两个月以上),勤奋好学,小组合作开发更好。推荐 水平较高并熟悉CC+语言的学生,补一补Windows程序设计的知识,使用C、VC、MFC,ATL、wTL这些工具来设计开 发。有一定困难的可使用VB、Delphi,采用ActiveX控件的方式进行(ActiveX的技术基础也是COM)。开发出来的COM 组件最后可集成于管理信息系统或其它应用系统之中,这种开发经验相对于单纯的管理信息系统有更好的煅炼作用。 33设计方式 利用COM技术进行毕业设计不能拘泥于固定形式,难度可大可小,既可一人完成也能多人合作,实现方式可以多种多 样,这里列举三例: 直接实现一个单独的完成特定功能的COM组件。这样的组件应当具有一定的难度和工程量,如采用CC+来设计一个 特定功能的组件,主要内容是组件,附带一个简单的组件客户程序。毕业设计论文围绕这个组件,讲清它的机理与实现方法。 先完成一个组件,再集成于应用软件中。主要内容是应用软件,利用COM技术来实现一个小功能的组件并集成于应用 软件中,最后制作一个完整的安装发布程序,这样既熟悉了应用软件的开发方法又学习了组件的设计、调用与发布方法。 开发出一个ActiveX控件再集成于你的系统中。这种方式难度不大,利用VC、VB、Delphi这些可视化工具设计一个完 成特定功能的ActiveX控件,可以不涉及于COM机理,又能接触COM。 33需要注意的问题 331纠缠原理 COM组件的开发不一定需要对其原理有很深的了解。COM原理是很复杂的,但COM的开发并不难。毕业设计的时间 有限,不能在这有限的时间内过于钻研原理。应直接学习COM的运用,还可以采用MFC、ATL、WTL这些模板类库来简 化开发。纠缠于原理陷入其中可能会延误设计时间,而且完成设计后有了应用经验再来钻研原理可能还容易一些。 332 COM与DLL的联系区别 很容易将DLL COM混为一淡,l大I为这两种技术者lj能很好地史持 进制代码级别 的重用, f_DLL足COM实岘 的重蛰彤 。Windows DLL的使用很普遮,利用DLL技术也能进行 种砹计,但DLL 0 COM -艮奉 川, 遵循COM 范的DLL何如下缺点: 函数蕈名问题。DLL 足一个一个的函数,我们通过函数名木训用函数,如果 个DLL 何霞名的函数就会发生问题。 这足一个 好 决的难题,伞 界有很多人 开发DLL,名 足随意起的,罩:名小町避免。 编译器对C+函数的名称修饰 兼容问题。对十C+函数,编译器蛰根据函数的参数信息为它生成修饰名,DLL 库半1竽的就足这个修饰名,但足小 的编译器产生修饰的方法f 一样, 所以你 VC 编 j的DLL : 它的c+编译 就口J 能用 J,。虽然也町以用extern”C”水强调使用标准的函数特性,关闭修饰功能,但这样也 失J,c+的单:城和多 态 功能。 路 问题。把做好的DLL放 白己的目录下面,别人的程序就找 到,放 系统目录下,就 J能何取名的问题。真 F的ll件 该口J以放 任何地方甚 口以 奉机 。 DLL j EXE的依赖问题。EXE对十DLL义件的链接一股都足用隐 连接的方 ,就足编程的寸攸指IIJJ用什么DLL, 这种方 很 甲,它 编译时就把EXE 0 DLL绑 一起J,函数 DLL 载时被按地址 定,所以 重矬DLL时,小能简 单地用DLL新版奉替换版奉 f 重新编译, 为DLL中各函数的地址日J能已经发生J 改变。 COM没有蕈名问题,l太l为根奉小足通过函数名水调用函数,I 足通过虚函数表,白然也 会何函数名修饰的问题。COM 中需芟防止的足接u标识的蕈名,十足它采用j-128位艮的伞局唯一标识符(GUID,Globally Unique Identifier), 时间和 砹桥参数的 础lN机生成,可以保 到公儿3400年仍足唯一的。路 问题也卜复仔4i!, 为COM足通过 沣册表木找组 件的,放 什么地方都口J 以,B使 别的机器 行。也小用考虑和EXE的依赖关系j-,它们一 之间足松敞的结合 _一 起,口J以轻松的换 组件的一个新版奉,I 用程序混然 觉。口J 见DLL的缺点就足COM的优点,COM克服r DLL 仃 的缺陷,从 实虮J, I 一级的重用。 333 COM与OLE、ActiveX OLE代表的是对象链接与嵌入,许多程序员将术语COM与OLE相互替代使用,其实它们不是同义词。COM是对象模 型,形成了所有OLE和ActiveX技术的基础,OLE则是一种技术,如允许您将Excel电子表格放置在Word文档中。 ActiveX指代一食 十COM的技术,用水使lnternet(特别足worIdWideWeb) 具何交且 。确甲地讲,ActiveX摔 件足一个COM对象。 维普资讯 l2O 武汉科技学院学报 2005年 4用COM进行毕业设计的意义 丰富毕业设计的课题,让学生从单纯的MIS中解脱出来,选择自己爱好的方向。 促使学生尽早接触计算机的前沿知识,激发学生的学习兴趣。COM是软件开发未来的主方向,让学生接触COM有利 于激发他们对COM的兴趣,从而去钻研操作系统原理和系统底层机制乃至整个系统架构的知识,为以后的专业发展提供良 好的帮助。 满足人才市场的多元化需求。做完毕业设计后的学生就进入了人才市场,面临着找工作的压力。人才市场的需求是多元 化的,除了需要大量软件工程的程序员之外,还需要一些掌握较深专业原理和全面知识的工作或研究人员,学生接触了COM, 掌握了相关技术和经验,对他们找工作求发展无疑是有好处的。 为学生以后钻研COM原理打下坚实基础。COM是一种重要的、主流的技术,它的原理和机制是很难懂的,我们不需 要所有的程序员都懂COM,但一部分人是需要深入掌握COM的。学生仅通过毕业设计来学习它远远不够,经历了这个毕业 设计,接触了相关知识,有了一定经验,就会去除胆怯,有了勇气和兴趣深入学习COM。 有利于发掘尖子学生的潜力,为其提供施展的空间。很多尖子学生不满足于MIS开发,他们可能早就有了就种开发经 验,现在需要一种新的动力。我们引入了COM,增加了设计的难度,也为他们提供了施展个人才华的空间。 参考文献: 1 1 Dale RogersonInside COMM】Microsoft Press,1 J7 【2】 潘爱民COM原理与应用M】北京:清华大学出版l_,l999 3】 Brend Rector,Chris SellsATL InternalsM】Addison Wesley Longman,Inc1999 【4】 Jeff ProsiseProgramming Windows with MFC,Second Editionl M1Microsoft Press,l 999 5】David JKruglinskiInside Visual C+,4th EditionM】Microsol、I Press,l 997 61 侯俊杰深入浅出MFC:第2版MI武汉:华中科技大学出版1:,2001 【7】 曾伟民,邓勇刚Visual Basic 60高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年原乙酸三甲酯合作协议书
- 2025年高效余热回收装置合作协议书
- 农业生产中精准信息技术合作实施协议
- 智能农业解决方案供应与维护协议
- 制造业离职证明及再就业指南(7篇)
- 2025年哈密危运资格证考试题
- 农村耕地长期流转合同书
- 2025年碳酸甲乙酯合作协议书
- 农业技术推广合同
- 别墅建筑工程承包协议
- 蜱虫预防卡通
- 股骨干骨折知识
- 非遗文化产业发展-深度研究
- 2024年认证行业法律法规及认证基础知识答案
- 基于大数据的社区健康监测-深度研究
- 丙酸铬、淀粉酶对黄羽肉鸡生长性能、抗氧化和肠道健康的影响
- 光伏发电新能源课件
- 《无人机电力巡检红外图像分析技术规范》
- 2025年广东省高中学业水平考试综合测评卷(二)政治试题(含解析)
- 老旧小区改造给排水施工方案
- 医院员工保密协议书模板2025年
评论
0/150
提交评论