您的浏览历史

GUI应用程序移植--在Linux上模拟Windows API的方法

促销活动

基本信息

内容简介回到顶部↑

本书介绍一种把Windows GUI应用程序移植到Linux的方法——API模拟方法。书中介绍了这种方法的设计思想,以及具体的实现过程。同时,充分探讨了GUI应用程序移植所必然面对的基于不同操作系统的编程模型的差异,揭示了两个系统有关用户界面交互和图形输出基本逻辑结构的一些鲜为人知的特性。全书共分为12章,包括:移植架构,GDI子系统,文本输出和字体管理,窗口子系统,消息子系统,用户输入,剪贴板和拖放,标准控件、菜单与对话框,打印,Unicode与国际化,国际化输入和资源的移植。
本书起点较高,适合具有相当基础的软件开发人员、高年级计算机或相关领域的学生,以及那些可能需要为企业决策者提供技术和信息支持的架构师。由于本书是以GUI应用程序为背景来讲述的,所以对于任何在Windows和Linux系统之一进行应用程序开发或移植工作的工程师,以及任何C/C++程序员和工程师,都是一本具有较高参考价值的图书。

作译者回到顶部↑

本书提供作译者介绍

肖习攀,清华大学计算机科学与技术系硕士。IBM中国开发中心高级软件工程师。从2003年4月加入IBM中国开发中心至今,一直从事旨在提高企业生产效率的应用软件开发。多个项目开发组长。经历涉及Windows、Linux和Macintosh等平台,兴趣包括图形用户界面移植和企业协作式应用软件开发。



阎小兵,在中国科学院计算技术研究所获得硕士。1999年加入IBM中国公司。现任IBM中国开发中心高级开发经理。曾参与IBM CICS移植,IBM WebSphere Commerce移植,IBM Productivity Tools开发与项目.. << 查看详细

目录回到顶部↑

第1章 移植架构
 1.1 移植架构的设计
 1.2 API模拟层的结构
 1.3 API模拟层的实现方法
 1.4 编译器差异
 1.5 示例程序介绍
 1.6 小结
第2章 GDI子系统
 2.1 Windows和Linux的图形用户界面输出比较
 2.2 GDI模拟架构
 2.3 GDI对象详述
 2.4 屏幕输出
 2.5 元文件(metafile)
 2.6 小结
第3章 文本输出和字体管理
 3.1 文本输出
 3.2 字体管理
 3.3 小结
第4章 窗口子系统
 4.1 Windows和Linux的窗口系统比较

前言回到顶部↑

软件产品的多平台支持已经成为一种趋势,许多企业正在考虑或者已经开始对其已有软件实施多平台支持。为此,移植通常是首先想到的方法。我们的项目实践也证明,移植这一方法,无论是在资源、成本方面,还是在进入市场及时性等方面,与选择在目标平台上重新设计和实现相同功能的软件相比,都是一种更为可行的方法。.
但是,多数软件产品在开发初期,由于各种限制,设计者并没有从架构及实现上考虑程序的可移植性,从而导致平台的依赖性较强,用户界面和事务逻辑的分离不够完善,因此在技术上给移植带来了极大的困难。尤其是桌面应用程序,由于系统模型和函数接口本身差异很大,平台依赖更加紧密。
本书以一个GUI C++桌面应用程序移植为背景,以Windows为源平台,目前活跃的桌面平台Linux作为目标平台,介绍一种统一的基于应用程序接口(API)的源平台到目标平台的移植方法及其实现过程。本书称这种方法为API模拟方法。和一般的对于某个特定应用的移植过程不同,这种方法使得所有的Windows应用程序的移植过程变得简单划一,解决了移植通常所面临的平台依赖性,克服了用户界面和逻辑事务不清晰所带来的困难,所以它为所有具有图形用户界面的Windows程序的移植提供了一个统一的解决方案。
API模拟方法,就是在目标平台上实现一套源平台所用的API。在本书中,我们特指,为了移植Windows GUI应用程序到Linux,而在Linux上实现的一个用来模拟Win32 API的抽象层。在本书中,又把这一抽象层称为“API模拟层”。这样,源代码的业务逻辑部分就不需要做任何改动,而一旦所有的用户界面程序使用的Windows API在目标平台上被模拟,并且以动态链接库的形式提供出来,理论上,则所有Windows用户界面程序的移植就已完成。
值得提及的是,尽管这种基于模拟API的方法在思路上非常清晰,但是,由于源代码设计和实现技术水平的差异,API模拟的方法在实际实现中会遇到各种各样的困难。所以本书在描述这种方法和实现的同时,处处不忘记就API移植所涉及到的源系统和目标系统的特性和差别进行深入剖析和探讨。同时,本书还为读者展现了两个系统有关用户界面交互和图形输出基本逻辑结构的一些鲜为人知的特性。本书将为读者深入理解Windows系统和Linux系统下的图形用户接口程序设计和编程实现差异提供具有价值的指南。
本书特色
不同于通常的移植方面的图书(尽管不多,但读者还是可以在Amazon.com上查到一些,比如“Unix To Linux Porting: A Comprehensive Reference”,AlFredo-Mendoza, Chakarat- Skawratananond, Artis-Walker),这些图书主要介绍移植过程,包括从获取源代码、编译、链接到调试。本书对这些过程在Linux上的特殊性进行了描述,而重点是介绍这种统一的、针对GUI应用程序的基于API模拟的移植框架和具体实现。
不仅如此,由于源平台和目标平台,即Windows和Linux平台,编程模型的不同,移植工作会遇到许多挑战和困难。本书对此进行了充分的分析和说明,并提出了很多行之有效的解决方案,这将是读者可以从本书中获得的另外一个巨大收获。..
同时,书中还结合大量的例子程序,使读者能够快速理解不同方法的实现原理和具体的应用。最后,本书还给出了一个完整的Windows应用程序,读者可以利用书中所介绍的方法和实现,自行实施一个精巧而完整的从Windows到Linux的应用移植过程,从而真正掌握这种方法,并将其立刻应用到实际项目之中。
本书作者们具有多年大型应用程序移植经验,书中无处不渗透着作者们对应用移植、Windows、Linux系统的深刻理解、独特见解,以及高级的程序设计和编程技巧,所以,无论程序员还是架构师都可以从中受益。
本书的读者对象
本书的读者对象是具有相当基础的软件开发人员、高年级计算机或相关领域的学生,以及那些可能需要为企业决策者提供技术和信息支持的架构师。由于本书是以GUI应用程序为背景来讲述的,所以对于任何在Windows和Linux系统之一进行应用程序开发或移植工作的工程师,以及任何C/C++程序员和工程师,都是一本具有较高参考价值的图书。我们期望本书能够成为一盏为读者在艰辛的移植或开发工作中照亮黑暗的明灯。
本书组织
本书介绍的是通过模拟Windows子系统实现的方法,描述的模拟层的设计结构也同Windows的子系统相似。为了清楚地描述这一模拟实现的过程,本书的叙述方式,以及目录和章节标题的组织,也是按照相近的分类来进行的,所以读者看到的目录和章节的标题,更像是一本讲述Windows编程的书。而事实上,其中讲述的是在Linux上的实现,以及平台之间的差异比较。
全书分为12章来讲述。
“第1章 移植架构”,介绍了模拟API方法的设计思想、总体框架、组成部分及各组成部分之间的相互关系。同时,许多贯穿全书的重要概念,在本章中也给出了定义和阐述,包括Windows和Linux平台之间的典型差异,X窗口系统(X Window System,简称X)的编程提示。
“第2章 GDI子系统”,“第3章 文本输出和字体管理”,“第9章 打印”讲述了API模拟架构中基础的GDI模拟子系统及其输出设备的设计和实现,“第4章 窗口子系统”,“第5章 消息子系统”,“第6章 用户输入”,“第7章 剪贴板和拖放”深入探讨了模拟层底层服务,并揭示了许多关键技术及其难点的解决方法。
“第8章 标准控件、菜单与对话框”讲述的是USER子系统中建立在底层服务之上的几个关键组件的设计与实现。
“第10章 Unicode与国际化”,“第11章 国际化输入”是国际化软件必不可少的组成部分。在模拟层中其实现分布在GDI和USER子系统之中。但从国际化意义上看又有相对独立性,所以单独提出来讲述。
“第12章 资源的移植”描述了大型GUI应用程序移植的一个重要环节——资源的移植。其中描述了有关资源移植的过程及经验。

序言回到顶部↑

致力于软件业务在中国的长期发展,IBM公司于1999年在中国投资成立了中国开发中心(IBM China Development Lab,CDL)。在为IBM全球客户提供满足需求的软件、硬件产品,以及技术和解决方案的同时,作为IBM全球软件资源在中国的窗口,CDL把全球先进技术引入中国,为中国软件产业与世界的交流搭建桥梁。.
八年来,CDL不断吸引全球卓越的科技和管理人才,以及中国各大学府的顶尖学生、优秀工程师加入,并积极致力于同本土合作伙伴共同建设团队,研发队伍从八年前的100多位软件工程师增至今天的3000多位,年平均成长速度超过50%。
CDL高度重视员工培养,除各种短期或长期的培训,员工还被派往IBM在美国或其他地区的实验室,与世界各地同仁一起工作,在工作中学习先进的技术和管理方式。CDL更是将IBM全球实验室中拥有丰富经验的技术和管理人才请到中国工作,向中国员工传授经验。庞大的资金注入,人性化的管理方式,以及对人才方面的巨大投资,对人力资本的极度重视,使中国开发中心得以与IBM全球实验室共同成长,最终拥有一支经验丰富,训练有素的团队。
目前,CDL与全世界同步发展多项领域产品,正在为包括Information Management、WebSphere、Lotus、Tivoli、Rational在内的所有IBM软件核心产品的研究和开发做出卓越贡献,并在SOA、数据库、WebSphere产品系列、普及运算、Lotus Workplace Client技术及Linux系统方面取得非凡的成就,被视为IBM全球产品的开发重心之一。..
在CDL高速发展的同时,为将信息产业的最新技术尽快地转化为对中国用户有价值的解决方案,帮助用户更有成效地开展业务,增强竞争优势,我们恪守为中国软件业与世界交流搭建桥梁的承诺,希望将IBM全球公司几十年的技术积淀和我们的心得与大家共同分享,于是,我们选择了实力非凡、专业创新的电子工业出版社博文视点公司作为合作伙伴,推出这一由IBM中国开发中心(CDL)的架构师、资深软件工程师们编写的系列丛书,范围涵盖了从开发实践、测试方法、项目实践、最新技术标准和发展趋势探讨,到先进解决方案构建、面向服务的架构的提供等诸多方面。
我希望这套丛书能把我们一线专家宝贵的经验,以及我们的见解呈现给读者,并希望无论是企业IT经理、程序设计和开发人员、软件工程师、软件架构师,还是在校学生,或者是对计算机领域有兴趣的人员,都能从中获取知识或者得到启发。
在同业界分享经验和世界最新技术及趋势的同时,我们希望能为推动中国软件产业的加速发展贡献微薄之力。IBM中国开发中心将一如既往地同业界同仁一起,共铸中国信息产业的辉煌明天!...
IBM院士、总经理 IBM中国开发中心
2007年2月

评论交流

共有4人开贴评论  4人参与评论  3人参与打分 查看

1人
 33%
用户平均打分
我要写评论 help如何参与评论和打分
2人
 66%
0人
 0%
0人
 0%
0人
 0%

glory

四级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2009-12-20 14:43:00
书的内容和预先想的不太一样
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

tikiet
一级评论员
评价等级:  
发表于:2007-9-30 19:14:00
内容似乎很酷啊~
给个五星先……
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

flyingxu

二级评论员
  
发表于:2007-4-19 22:53:00
只能说是话题的确比较新,但是同时也比较窄,不知道销售的怎样
免费的话会更好
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

predaking

专家级评论员
评价等级:  
发表于:2007-4-5 22:58:00
好像很爽!
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)
我要写评论
查看所有评论交流(共4条)