基于自动化与窗体嵌入系统集成方法.docVIP

基于自动化与窗体嵌入系统集成方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于自动化与窗体嵌入系统集成方法

基于自动化与窗体嵌入系统集成方法   摘要:在探讨自动化和窗体嵌入方法的基础上,提出了通过自动化和窗体嵌入进行复杂系统集成的方法#65377;该方法通过自动化实现系统的功能集成,通过窗体嵌入实现系统的图形用户界面(GUI)集成,给出了基于自动化的系统集成模型,探讨了窗体嵌入中的跨进程窗体捕获#65380;嵌入以及控制等关键问题#65377;利用该方法可以非常容易地实现不同语言平台下开发的应用程序的功能和界面无缝集成,不仅可以充分地利用已有资源,减少重复开发,而且大大降低了系统设计的复杂度,提高了系统的健壮性和可维护性#65377;   关键词:自动化;图形用户界面;嵌入窗体;系统集成   中图分类号:TP311.1文献标志码:A   文章编号:1001-3695(2007)04-0268-02   在复杂的软件系统的设计中,常常根据功能的需求按照逐步求精的思想对系统进行模块细分#65377;对于某些子系统,通常用已经开发完成的成熟系统,这些系统常常基于不同的语言平台开发,因此采取何种简单有效的方式对各个子系统进行集成,既实现功能的集成,又能对基于图形用户界面(GUI)的各子系统实现界面的无缝集成,成为系统设计中必须考虑的一个问题#65377;本文在研究自动化与跨进程窗体控制的基础上,对基于自动化(Automation)与跨进程控制的系统集成方法进行了研究#65377;??      1自动化简介[1~3]??      组件对象模型(COM)是Microsoft开发的一种以组件为单元的平台独立#65380;分布式#65380;面向对象#65380;可重用的二进制对象模型,是Microsoft OLE#65380;ActiveX等技术的基础#65377;COM既不是一种语言,也不是一种程序设计方法,而是一种对象交互标准#65377;COM对象通过定义良好的接口进行耦合#65377;??   自动化是COM接口IDispatch的通俗说法#65377;Automation可以使应用程序将自身的功能开放给其他应用程序使用#65377;Microsoft Office系列均通过自动化功能提供了具有层次结构的对象供其他应用程序调用#65377;其他如Surfer#65380;AutoCAD#65380;MapInfo等软件也提供了自动化功能#65377;自动化对象可以在C/C++#65380;Visual Basic#65380;Delphi#65380;Java#65380;.NET等多种语言下开发,同样自动化程序不仅可以在上述平台下被调用,而且可以被一些解释型的脚本语言如VBScript#65380;JScript等调用#65377;??   自动化的核心为IDispatch接口,其定义如下:??   从IDispatch接口的定义可以看出,该接口本身不提供任何功能,只是功能组件的代理,充当客户与功能组件之间的管道,客户程序通过IDispatch∷Invoke来激活组件中的特定方法#65377;而IDispatch的调度程序是基于类型库进行的,所以其仅支持自动化兼容的数据类型#65377;??   尽管自动化的实现看起来很复杂,但多数的集成开发环境(IDE)如Visual Basic#65380;Delphi#65380;Visual C++#65380;.NET等均提供了自动化支持,使得开发自动化应用程序变得非常容易#65377;系统中的各个子系统模块,不管在何种语言平台下开发,均可以按照自动化的方式进行封装,并提供具有层次结构的对象供其他程序调用,只要实现既定的功能接口,就可以很容易地实现集成调用#65377;基于自动化的系统功能集成模型如图1所示#65377;??      2窗体嵌入方法[4~6]??      虽然通过自动化可以实现对各个子系统模块程序的集成控制,但在通过图形用户界面完成复杂操作的子模块中,用户的交互操作对图形用户界面具有极大的依赖性#65377;因此为了实现系统的完善集成必须进行图形用户界面的集成,通过对窗体的嵌入研究实现了图形用户界面的集成#65377;??      2.1跨进程的Windows窗体的获取方法??   在Windows系统基于GUI的应用中,通常都有一个顶层主窗体和多个以其为父窗体的子窗体#65377;其生命周期为应用的生命周期,即随着子系统应用的启动而创建,随着应用的结束而销毁;同时还有多种动态生成的窗体,其生命周期是不确定的,如各种对话框窗体#65377;对各种生命周期不同的窗体通常有各种不同的获取方法:??   (1)主窗体的获取#65377;Windows AP中提供了一种获取应用程序主窗体的方法,其接口函数为HWND FindWin

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档