网站大量收购独家精品文档,联系QQ:2885784924

《电大计算机毕业论文:试谈计算机软件中的插件技术》-毕业学术论文(设计).docVIP

《电大计算机毕业论文:试谈计算机软件中的插件技术》-毕业学术论文(设计).doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电大计算机毕业论文:试谈计算机软件中的插件技术 摘 要:应用插件技术,可以很好地提高软件的重用性和扩展性,解决软件合作开发与集成问题具有很好的理论和实用价值。介绍了插件技术的原理,阐释了插件的实现方案,提出了插件技术在地震处理插件系统中的应用。 关键词:插件;接口;插件技术 1引言 一个可以挂接插件的软件系统,通常包括主程序(host)和插件(p1ug-in)组两个部分。独立的主程序和插件能够互相结合在一起工作,必须有一套互相协作的规则和协议,使不同来源的程序互相协调工作。这些规则和协议称为插件系统的接口。插件可以由动态链接库实现,主程序根据接口规则,调用插件的功能,同时还可将任意插件接口在内存中的地址传递给每个插件,插件则根据这些地址来调用其他插件函数,完成所需功能、获取所需资源等。 2插件技术的原理 2.1动态链接库 动态链接库(Dynamic Link Library)是一种具有一定功能的可执行软件模块,虽然它本身不能独立运行,但是它可以输出函数或类,通过其他能独立运行的程序(宿主程序)可以调用它内部的功能。动态链接库有两种调用方式: 2.1.1静态调用方式 由编译系统完成对DLL的加载和应用程序结束时DLL卸载的编码(如还有其他程序使用该DLL,则Windows对DLL的应用记录减1,直到所有相关程序都结束对该DLL的使用时才释放它),简单实用,但不够灵活,只能满足一般要求。隐式的调用需要把产生动态连接库时产生的.LIB文件加入到应用程序的工程中,想使用DLL中的函数时,只需说明一下。隐式调用不需要调用Load Library()和Free Library()。程序员在建立一个DLL文件时,链接程序会自动生成一个与之对应的LIB导入文件。该文件包含了每一个DLL导出函数的符号名和可选的标识号,但是并不含有实际的代码。LIB文件作为DLL的替代文件被编译到应用程序项目中。当程序员通过静态链接方式编译生成应用程序时,应用程序中的调用函数与LIB文件中导出符号相匹配,这些符号或标识号进入到生成的EXE文件中。LIB文件中也包含了对应的DLL文件名(但不是完全的路径名),链接程序将其存储在EXE文件内部。 2.1.2动态调用方式 是由编程者用API函数加载和卸载DLL来达到调用DLL的目的,使用上较复杂,但能更加有效地使用内存,是编制大型应用程序时的重要方式。 显式的调用是指在应用程序中用Load Library或MFC提供的Afx Load Library显式的将自己所做的动态连接库调进来,动态连接库的文件名即是上面两个函数的参数,再用Get ProcAddress()获取想要引入的函数。自此,就可以使用如同本应用程序自定义的函数一样来调用此引入函数了。在应用程序退出之前,应该用Free Library或MFC提供的Afx Free Library释放动态连接库。直接调用Win32的Load Library函数,并指定DLL的路径作为参数。Load Library返回HINSTANCE参数,应用程序在调用Get Proc Address函数时使用这一参数。GetProc Address函数将符号名或标识号转换为DLL内部的地址。程序员可以决定DLL文件何时加载或不加载,显式链接在运行时决定加载哪个DLL文件。使用DLL的程序在使用之前必须加载DLL从而得到一个DLL模块的句柄,然后调用GetProc Address函数得到输出函数的指针,在退出之前必须卸载DLL(Free Library)。 2.2接口 开发支持插件功能的应用程序必须解决一个问题:如何在宿主程序与插件间正确地相互通信。俗话说“没有规矩不成方圆”,为了在宿主程序与插件间能正确地相互通信,应该先制订一套通信标准,这套制订好的通信标准就是接口,宿主程序与插件只能通过制订好的接口进行通信。软件开发中,接口只是定义功能并规定调用功能的形式,而不包含功能的实现。接口实质上是软件模块的调用规范,就开发支持插件功能的应用程序而言,一般来说由宿主程序的开发者来制订接口,如果希望其他的开发人员能开发相关的插件,只要公开相关的接口即可。接口功能一般由插件方实现。因为插件的实现也许要调用宿主程序的功能,所以接口功能也可能由宿主程序来实现。也就是说,宿主程序与插件的信息流可能是双向的。接口的调用规范与功能实现相互分离有一个很大的优点:尽管不同的插件开发者对同一个接口的具体实现不同,但是在宿主程序中对这些插件的调用方式是一样的。如果有宿主程序实现的接口,在不同的插件中也可以用相同的使用方式调用宿主程序的功能。这极大地提高了应用程序的灵活性。 2.3程序结构及运行机制 可以得出一个开发支持插件功能应用程序的解决方案:在动态链接库中实现插件接口,在宿主程序中运用显式链接方式动态加载插件。

文档评论(0)

沙卡娜 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档