
| 本书详细介绍跨平台应用的构建方法,包括真实的场景和大量实用的代码示例,以及一个完整的基于Mozilla XUL的跨平台GUI工具包,你可以在网站上下载到所有的源码,并从中获益。 Netscape在向数百ZjWindows、Mac OS和Linux用户发布浏览器时采用的策略和过程。 在所有平台上提供一致的功能和接口。 理解流行的平台GUI APl之间关键的相似与不同,它们包括Win32/.NET、Cocoa和DGtk+。 决定使用原生IDE的时机,以及如何限制它们对移植性的影响。 使用基于标志的APl,包括POSIXj和IISTL等。 避免隐晦的移植性陷阱,相关的如浮点数、char类型数据序列化,以及c++的类型等。 利用平台抽象库,如Netscape Portable Runtime(NSPR)等。 建立一个有效的跨平台瓦bug报告和跟踪系统。 为多个平台创建build并在跨平台构建失败时检测到它们。 理解本地运行环境以及它们对安装程序的影响。 使用wxWidgets从一个代码库里来创建多平台的GUl应用程序。 完整地测试应用程序的可移植性。 通过Trixul理解跨平台GUL工具包的设计。 |
| Syd Logan,是一位工作生活在南加州的软件工程师,拥有圣地亚哥州立大学的计算机科学学士和硕士学位。Syd曾是Netscape Client Product Development(CPD)团队的一员,在Netscape 6和7的开发过程中,他同时担任了开发和管理的职务。之后,Syd留在AOL并作为AOL Instant Messenger团队的一员实现了VoIP点对点视频的特性。Syd的其他著作还包括《Developing Imaging Applications with XIELib》《Gtk+Programming in C》(Prentice Hall 1997和2001)。他的研究兴趣包括机器学习、操作系统设计、算法,以及任何与C、C++和UNIX有关的事物。 |
| “C++设计新思维”丛书前言译者序序前言引言第1章策略与管理1条款1:把所有的平台都放在同样重要的位置1条款2:使用公共的代码3工厂模式在不同平台上的实现8类的实现9平台相关的ProcessesImpl类10创建实例层次18用CVS或SVN组织项目20编译代码和Makefile22条款3:要求开发人员用不同的编译器编译代码24条款4:要求开发人员在不同的平台上编译代码26条款5:测试所有的平台28条款6:关注编译警告29GNU 标志29微软Visual C++30第2章Build系统和Toolchain31条款7:使用最适合平台的编译器31条款8:尽量使用本地IDE32条款9:在Windows上安装和使用Cygwin34条款10:使用跨平台的Make系统37Make37在Windows上编译Makefile和源码40Autoconf/Automake43Imake46在Mac OS X上安装Imake46在Windows上安装Imake46一个例子:使用Imake48Imakefile文件49完整编译的一个多文件程序49在site?def里重写默认值51去除代码里的#ifdefs53Imake中用到的文件57编译含有子目录的项目58Debug的编译73第3章软件配置管理74条款11:使用跨平台的bug报告和跟踪系统74可访问性75跟踪平台相关bug的能力75Bugzilla75条款12:设置Tinderbox80条款13:用CVS或Subversion来管理源代码84设置和使用CVS86条款14:使用patch90一个例子90patch选项91应对reject92patch和跨平台开发93第4章安装与部署94条款15:为本地安装程序提供支持94XPInstall94平台安装97第5章操作系统接口和库130条款16:使用标准API(如POSIX)130POSIX130支持POSIX、SVID、XPG和BSD132在GCC里使用标准支持133微软Runtime Library对POSIX的支持…135在Windows上使用GCC137决定支持哪个标准141条款17:考虑使用NSPR这样的平台抽象库141为什么要开发NSPR142NSPR基础143线程146NSPR的其他功能153第6章其他可移植性主题161条款18: 慎用浮点数161不要把浮点值序列化为二进制162判断相等163条款19:显式地注明char类型的符号164条款20:避免序列化二进制数据165条款21: 避免类型长度和组织带来的问题174整型的长度174NSPR里的类型176长度和效率177整型转换177struct的对齐和顺序178第7章用户界面180条款22:从Model里把用户界面分离出来180用Model/View把用户界面和程序逻辑分开181用Publish/Subscribe在View和Model之间通讯190小结192条款23:开发一个跨平台用户界面的策略193影响跨平台GUI开发移植性的问题193选择GUI的策略194第8章wxWidgets196wxWidgets概述197许可协议197安装wxWidgets197一个简单的例子:Hello wxWidgets199创建应用程序的用户界面200编译wxWidgets应用程序205控件与事件207容器widget216对话框235复合式widget243ⅩⅨ国际化和本地化247第9章用C++开发跨平台GUI工具包…259什么是XUL259DHTML260HTML260脚本语言262文档对象模型263样式系统265XUL266窗口和对话框266box元素266工具条268菜单268控件268其他widget268用XUL编程269用JavaScript为UI添加逻辑269用XPCOM和XPConnect接口化JavaScript和C/C++270Trixul271Trixul支持的widget272Trixul的基本操作272widget273类的实现275创建widget实现的对象280widget工厂282应用程序主循环285Trixul创建用户界面的步骤288文档、元素和DOM288创建widget291布局292滚动窗口和布局296和JavaScript集成297和C++组件集成304 |
商品评论(0条)