出版社:机械工业出版社
年代:2008
定价:49.0
书籍简介整理中
“C++设计新思维”丛书前言
译者序
序
前言
引言
第1章策略与管理1
条款1:把所有的平台都放在同样重要的
位置1
条款2:使用公共的代码3
工厂模式在不同平台上的实现8
类的实现9
平台相关的ProcessesImpl类10
创建实例层次18
用CVS或SVN组织项目20
编译代码和Makefile22
条款3:要求开发人员用不同的编译器
编译代码24
条款4:要求开发人员在不同的平台上
编译代码26
条款5:测试所有的平台28
条款6:关注编译警告29
GNU标志29
微软VisualC++30第2章Build系统和Toolchain31条款7:使用最适合平台的编译器31
条款8:尽量使用本地IDE32
条款9:在Windows上安装和
使用Cygwin34
条款10:使用跨平台的Make系统37
Make37
在Windows上编译Makefile和源码40
Autoconf/Automake43
Imake46
在MacOSX上安装Imake46
在Windows上安装Imake46
一个例子:使用Imake48
Imakefile文件49
完整编译的一个多文件程序49
在site?def里重写默认值51
去除代码里的#ifdefs53
Imake中用到的文件57
编译含有子目录的项目58
Debug的编译73第3章软件配置管理74条款11:使用跨平台的bug报告和
跟踪系统74
可访问性75
跟踪平台相关bug的能力75
Bugzilla75
条款12:设置Tinderbox80
条款13:用CVS或Subversion来管理
源代码84
设置和使用CVS86
条款14:使用patch90
一个例子90
patch选项91
应对reject92
patch和跨平台开发93第4章安装与部署94条款15:为本地安装程序提供支持94
XPInstall94
平台安装97第5章操作系统接口和库130条款16:使用标准API(如POSIX)130
POSIX130
支持POSIX、SVID、XPG和BSD132
在GCC里使用标准支持133
微软RuntimeLibrary对POSIX的支持…135
在Windows上使用GCC137
决定支持哪个标准141
条款17:考虑使用NSPR这样的平台
抽象库141
为什么要开发NSPR142
NSPR基础143
线程146
NSPR的其他功能153第6章其他可移植性主题161条款18:慎用浮点数161
不要把浮点值序列化为二进制162
判断相等163
条款19:显式地注明char类型的符号164
条款20:避免序列化二进制数据165
条款21:避免类型长度和组织带来的
问题174
整型的长度174
NSPR里的类型176
长度和效率177
整型转换177
struct的对齐和顺序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
一个简单的例子:HellowxWidgets199创建应用程序的用户界面200
编译wxWidgets应用程序205
控件与事件207
容器widget216
对话框235
复合式widget243
ⅩⅨ国际化和本地化247第9章用C++开发跨平台GUI工具包…259什么是XUL259
DHTML260
HTML260
脚本语言262
文档对象模型263
样式系统265
XUL266
窗口和对话框266
box元素266
工具条268
菜单268
控件268
其他widget268
用XUL编程269
用JavaScript为UI添加逻辑269
用XPCOM和XPConnect接口化JavaScript
和C/C++270
Trixul271
Trixul支持的widget272
Trixul的基本操作272
widget273
类的实现275
创建widget实现的对象280
widget工厂282
应用程序主循环285
Trixul创建用户界面的步骤288
文档、元素和DOM288
创建widget291
布局292
滚动窗口和布局296
和JavaScript集成297
和C++组件集成304
本书是开发可移植C/C++应用程序的权威读物,它指导编写的代码可以无缝地运行在Windows、Macintosh和Linux平台上而不需要牺牲任何功能、易用性或是产品的品质。本书是开发可移植C/C++应用程序的权威读物,它指导编写的代码可以无缝地Mozilla和Netscape的资深工程师SydLogan系统地讲解了所有和软件移植性有关的技术和管理上的挑战,包括编码、测试以及部署上的设计和考量。基于他丰富的跨平台开发经验,Logan完整地讨论了从原生API的使用到最新的可移植GUI开发策略等一系列问题。他还展示了如何避免传统跨平台开发方法里存在的问题,以及如何达到特性的对等性。本书对正在构建新的跨平台软件,移植现有的C/C++软件,或是考虑将来为软件添加跨平台支持的每一位软件从业人员和技术经理来说,都是必不可少的资源。本书详细介绍跨平台应用的构建方法,包括真实的场景和大量实用的代码示例,以及一个完整的基于MozillaXUL的跨平台GUI工具包,你可以在网站上下载到所有的源码,并从中获益。 本书详细介绍C++语言的跨平台技术,包含的主要内容有:Netscape在向数百万Windows、MacOS和Linux用户发布浏览器时采用的策略和过程;如何使用基于标志的API,包括POSIX和STL;如何避免隐晦的移植性陷阱,相关的如浮点数、chat。类型、数据序列化,以及C++的类型;如何建立一个有效的跨平台bug报告和跟踪系统等。本书内容详实,实例丰富。适合软件开发技术人员参考。【作者简介】 SydLogan是一位工作生活在南加州的软件工程师,拥有圣地亚哥州立大学的计算机科学学士和硕士学位。Syd曾是NetscapeClientProductDevelopment(CPD)团队的一员,在Netscape6和7的开发过程中,他同时担任了开发和管理的职务。之后,Syd留在AOL并作为AOLInstantMessenger团队的一员实现了VoIP点对点视频的特性。Syd的其他著作还包括《DevelopingImagingApplicationswithXIELib》《Gtk+ProgramminginC》(PrenticeHall1997和2001)。他的研究兴趣包括机器学习、操作系统设计、算法,以及任何与C、C++和UNIX有关的事物。