论文部分内容阅读
图形用户界面(Graphic User Interface),简称为GUI,是指采用图形方式显示的计算机操作环境用户接口。它借助菜单、按钮等标准界面元素和鼠标操作,帮助用户和计算机之间进行交互。GUI的出现使用户摆脱了命令,使得操作更为直观、形象。在现代计算机软件的开发过程中,GUI的设计占了整个软件开发工作量的大部分,同时GUI设计的好坏直接影响产品的市场竞争力。 当今常见的GUI程序大多是在Windows平台和X Window平台之上开发的。微软的Windows在GUI的研发中一直走在时代前沿,对于编程者和用户而言,Windows下各种GUI资源非常丰富。X Window是流行于Linux操作系统的平台,Linux及其开发工具的开源性减少了程序的不可预知性,出现错误后大家可以一起修正、完善,所以Linux吸引了越来越多的程序开发者投入其中。由于两个操作系统平台之间存在很大的差异,即使是使用同一种语言编写程序代码,Windows平台下开发的GUI程序也不能直接在Linux系统下编译运行,投入Linux开发的开发者无法在Linux下直接使用Windows的GUI资源。如果要进行二次开发对源程序进行大量的修改工作又造成了人力资源的浪费。 为了使开发者既可以享受Linux的开源,又能利用丰富的Windows GUI产品,同时还不需要花费大量的人力修改工作,本文提出一种跨平台代码转换的方案。这个方案针对既有的基于MFC(Microsoft Foundation Classes,微软基础类)的GUI程序,通过一种代码转换工具对源代码进行转换,源代码经过转换以后生成可以跨平台运行的目标代码,目标代码可以不经任何修改或者少量修改在Linux平台下编译运行。 本文主要从理论和具体实现两个方面进行了阐述。首先分析了Windows平台和X Window平台GUI结构的异同,为转换工具的代码转换工作提供理论依据。同时对跨平台开发、跨平台移植原理和方法进行进一步详细阐述,并从中找到跨平台代码转换在技术上的可行性。然后就Windows和X Window的编程接口差异提出解决的方法及其原理,同时在GUI视图/文档结构的转换方面对WxWidgets与MFC的类似结构进行研究比较,提出代码转换的具体方法原理。随后基于代码重构的思想,以GUI结构差异为切入点,详细叙述了GUI代码转换工具W2LGUI的具体模块设计和关键技术的实现,主要阐述了转换工具的五个功能模块:主窗口模块,CPP源代码转换模块,H源代码转换模块,资源文件转换窗口模块和其他文件支持模块。五个模块中关键的技术就是各个代码转换函数的实现以及资源文件的处理。之后介绍了开发跨平台转换工具的硬件和软件环境,并对软件开发平台做了详细的介绍,并以一个MFC单文档视图程序为例使用该工具进行代码转换,介绍了W2LGUI的一些具体的代码转换的实现,并在Linux操作系统中编译运行。最后讨论了设计的不足和改进之处,并对跨平台GUI系统的发展进行了总结和展望。 W2LGUI的实现既能针对已有的基于MFC的GUI程序,把丰富的Windows资源转换成Linux平台上可运行的程序,又能避免由于手工代码修改带来的二次开发的人力、物力资源浪费,同时程序员不需要再学习一门新的跨平台GUI开发工具,也减少开发者的负担。