基本信息·出版社:机械工业出版社 ·页码:562 页 ·出版日期:2009年03月 ·ISBN:7111260406/9787111260400 ·条形码:9787111260400 ·版本:第1版 · ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
Windows CE6.0开发者参考(原书第4版) |
|
|
|
Windows CE6.0开发者参考(原书第4版) |
|
基本信息·出版社:机械工业出版社
·页码:562 页
·出版日期:2009年03月
·ISBN:7111260406/9787111260400
·条形码:9787111260400
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:核心技术丛书
·图书品牌:华章图书
内容简介 《Windows CE6.0开发者参考》包含“Windows编程基础”、“Windows CE编程”、“高级Windows CE”三部分内容,帮助你全面了解Windows CE操作系统。同时包含大量Windows CE示例程序,所有的例子都是直接用API编写的,教会你如何编写Windows CE程序。Windows CE API的知识可以使我们更高效地使用MFC。
《Windows CE6.0开发者参考》是为所有在Windows CE下开发应用程序的人编写的,能为他们提供有价值的信息,使他们更加轻而易举地完成自己的任务。
作者简介 Douglas Boling,知名的Windows CE项目顾问咨询公司的创始人,为全球的公司讲授Windows CE和Windows Mobile课程。Doug也是行业活动受欢迎的发言人,在多个行业活动包括Windows嵌入式开发者大全上发表演讲。
译者简介:
何宗键,同济大学软件学院讲师,多届微软嵌入式MVP(最有价值专家)。《windows CE嵌入式系统》作者。熟悉Windows CE架构、驱动与应用开发。
编辑推荐 开发嵌入式和移动设备的权威指南:
《Windows CE6.0开发者参考》是获得新颖、实用的开发小尺寸应用程序的参考,它已经针对Windows Embedded CE6.0内核进行了更新。《Windows CE6.0开发者参考》由嵌入式应用程序开发的权威人士编写,专注于操作系统核心概念和Win32API。提供了广泛的代码示例和项目示例。帮助你在新一代设备上熟练地开发创新的应用程序。
主要内容:
针对嵌入式设备的独特需求设计复杂的应用程序。
管理虚拟内存、堆和栈以减小程序的内存占用。
创建多线程进程和处理事件。
使用存储管理器来管理不同的文件系统和卷。
使用数据库API存储简单的分组数据。
读写注册表数据,枚举主键和键值。
调度用户、计时器和系统事件,以及气泡通知。
连接到有线和无线网络,PC以及其他设备。
目录 第一部分 Windows编程基础
第1章 Hello Windows CE
1.1 Windows CE标准Windows的差别
1.1.1 Windows CE和标准Windows的差别
1.1.2 资源有限的Windows CE设备
1.1.3 Unicode编码
1.1.4 组件化设计
1.1.5 Win32子集
1.2 仍然是Windows编程
1.3 第一个Windows CE应用程序
1.3.1 创建第一个Windows CE应用程序
1.3.2 运行程序
1.3.3 出了什么问题
1.4 Hello2程序
1.5 剖析窗口应用程序
1.5.1 窗口
1.5.2 窗口类
1.5.3 窗口过程
1.5.4 消息的生命期
1.5.5 注册窗口
1.5.6 创建窗口
1.5.7 消息循环
1.5.8 窗口过程
1.6 Hello CE
1.7 运行Hello CE
第2章 在屏幕上绘图
2.1 绘图基础
2.1.1 合法和非法区域
2.1.2 设备上下文
2.2 文本输出
2.2.1 设备上下文属性
2.2.2 TextDemo示例程序
2.2.3 字体
2.2.4 未完成的任务
2.3 位图
2.3.1 设备相关位图
2.3.2 设备无关位图
2.3.3 DIB区域
2.3.4 绘制位图
2.3.5 AlphaBlending
2.4 线和形体
2.4.1 线
2.4.2 形体
2.4.3 填充函数
2.4.4 Shapes示例程序
第3章 输入:键盘、鼠标和触摸屏
3.1 键盘
3.1.1 输入焦点
3.1.2 键盘消息
3.1.3 键盘函数
3.1.4 KeyTrac示例程序
3.2 鼠标和触摸屏
3.2.1 鼠标消息
3.2.2 使用触摸屏
3.2.3 TicTacl示例程序
第4章 窗口、控件和菜单
4.1 子窗口
4.2 窗口管理函数
4.2.1 枚举窗口
4.2.2 寻找窗口
4.2.3 移动窗口
4.2.4 编辑窗口结构的内容
4.3 窗口控件
4.3.1 使用控件工作
4.3.2 按钮控件
4.3.3 编辑控件
4.3.4 列表框控件
4.3.5 组合框控件
4.3.6 静态文本控件
4.3.7 滚动条控件
4.3.8 控件和颜色
4.4 菜单
4.5 资源
4.5.1 资源脚本
4.5.2 图标
4.5.3 加速键
4.5.4 位图
4.5.5 字符串
4.6 DOIView示例程序
第5章 通用控件与Windows CE
5.1 通用控件编程
5.2 通用控件
5.2.1 命令栏
5.2.2 其他菜单控件
5.2.3 日历控件
5.2.4 时间日期选择器控件
5.2.5 列表视图控件
5.2.6 CapEdit控件
5.3 其他一些通用控件
5.4 不支持的通用控件
第6章 对话框和属性表
6.1 对话框
6.1.1 对话框资源模板
6.1.2 创建对话框
6.1.3 对话框过程
6.1.4 非模态的对话框
6.1.5 属性表
6.1.6 通用对话框
6.2 DlgDemo范例程序
第二部分 WindOWS CE编程
第7章 内存管理
7.1 内存基础知识
7.1.1 关于RAM
7.1.2 关于ROM
7.1.3 关于虚拟内存
7.1.4 应用程序的地址空间
7.2 不同类型的内存分配
7.2.1 虚拟内存
7.2.2 堆
7.2.3 本地堆
7.2.4 独立堆
7.2.5 栈
7.2.6 静态数据
7.2.7 字符串资源
7.2.8 选择适当的内存类型
7.2.9 管理低内存状态
第8章 模块、进程和线程
8.1 模块
8.2 进程
8.2.1 创建进程
8.2.2 终止进程
8.2.3 其他进程
8.3 线程
8.3.1 系统调度器
8.3.2 创建线程
8.3.3 设置和查询线程优先级
8.3.4 设置线程时间片
8.3.5 挂起和恢复线程
8.4 纤程
8.5 线程本地存储
8.6 同步
8.6.1 事件
8.6.2 等待
8.6.3 信号量
8.6.4 互斥量
8.6.5 复制同步旬柄
8.6.6 临界区
8.6.7 互锁变量访问
8.7 进程间通信
8.7.1 查找其他进程
8.7.2 WM-COPYDATA
8.7.3 命名内存映射对象
8.7.4 点对点消息队列
8.7.5 使用文件和数据库通信
8.8 XTalk示例程序
8.9 异常处理
8.9.1 C++异常处理
8.9.2 Win32异常处理
第9章 WindLOWS CE文件系统
9.1 Windows CE文件系统API
9.1.1 标准文件VO
9.1.2 内存映射文件
9.1.3 文件系统浏览
9.2 存储处理
9.2.1 对象存储
9.2.2 使用文件API来访问卷
9.2.3 存储管理器
第10章 注册表
10.1 注册表组织
l0.2 注册表API
l0.2.1 打开和创建主键
10.2.2 读取注册表值
10.2.3 写人注册表值
10.2.4 删除注册表主键和值
10.2.5 枚举注册表主键
l0.2.6 刷新注册表主键
10.2.7 注册表改动通知
10.2.8 RegView示例程序
第11章 Windows CE数据库
11.1 两种数据库
11.2 基本概念
11.3 数据库.API
第12章 通知
12.1 用户通知
12.2 计时器事件通知
12.3 系统事件通知
12.4 NoteDemo示例程序
12.5 查询已设定的通知
12.6 气泡通知
12.6.1 添加气泡通知
12.6.2 修改气泡通知
12.6.3 删除气泡通知
第三部分 高级WindOWSCE
第13章 windOWS CE网络
13.1 Windows网络支持
13.1.1 WNet函数
13.1.2 ListNet示例程序
13.2 TCP/IP编程
13.2.1 套接字编程
13.2.2 阻塞套接字与非阻塞套接字
第14章 设备间通信
14.1 红外通信
14.1.1 红外基础
14.1.2 设备发现
14.1.3 发布红外服务
14.1.4 查询和设置红外套接字选项
14.1.5 MySquirt示例程序
14.2 蓝牙
14.2.1 蓝牙协议栈
14.2.2 蓝牙发现
14.2.3 发布一个服务
14.2.4 通过WinSock进行蓝牙通信
14.2.5 通过虚拟COM端口进行蓝牙通信
14.2.6 BtSquirt示例程序
第15章 系统程序设计
15.1 Windows CE的内存体系结构
15.1.1 应用程序的地址空间
15.1.2 内核态的地址空间
15.2 编写跨平台的Windows CE应用程序
15.2.1 平台与操作系统版本
15.2.2 编译时的版本确定
15.2.3 显式链接
15.2.4 运行时的版本检测
15.3 电源管理
15.3.1 关机的含义
15.3.2 查询电源状态
15.3.3 电源管理器
15.3.4 不使用电源管理器来管理电源
第16章 串行通信
16.1 基本串行通信
16.1.1 打开和关闭串行端口
16.1.2 读写串行端口
16.1.3 异步串行I/O
16.1.4 配置串行端口
16.1.5 设置端口的超时值
16.1.6 查询串行驱动程序的能力
16.1.7 控制串行端口
16.1.8 清除错误并查询状态
16.1.9 保持活动状态
16.2 CeChat示例程序
第17章 设备驱动程序和服务
17.1 驱动程序基础
17.1.1 驱动程序的名称
17.1.2 设备驱动加载过程
17.1.3 枚举活动的驱动?
17.1.4 读写设备驱动
17.2 编写Windows CE流式设备驱动
17.2.1 流式驱动的入口函数
17.2.2 缓冲区管理
17.2.3 驱动程序接口类
17.2.4 设备驱动程序的电源管理
17.3 设备驱动程序的构建
17.3.1 Debug Zone
17.3.2 Gentle驱动程序示例
17.4 服务
17.4.1 服务的体系结构
17.4.2 服务的生命周期
17.4.3 应用程序对服务的控制
17.4.4 服务DLL的人口函数
17.4.5 服务的IOCTL命令
17.4.6 超级服务
17.4.7 Services.exe的命令行
17.4.8 TickSrv示例服务
……
序言 我是从3.0版本开始学习微软的Windows CE操作系统的。随着学习的深入,我越来越多地感受到Windows CE与桌面Windows之间的不同之处。毫不夸张地说,Windows CE把我从桌面开发带入了一个崭新的嵌入式开发领域。很多时候,由于Windows CE与桌面Windows之间的差异如此之大,我们无法直接把在桌面Windows中积累的开发经验直接应用到Windows CE开发上。因此,我一直觉得Windows CE的开发人员也迫切需要一本跟桌面Windows开发领域的《Programming Microsoft Windows》一样权威的技术书籍,来介绍Windows CE的开发技术。
第一次接触Douglas Boling的《Programming Microsoft Windows CE》还是若干年前这本书第2版的中译本,内容是基于Windows CE 3.O的。说实话,读完之后觉得不温不火,并没有太大收获,全书的内容与桌面Windows编程重复较多、并没有体现出Windows CE或嵌入式开发的特色。
2005年夏天,微软亚洲研究院与同济大学软件学院针对全国高校的教师,举办了一次嵌入式教学研讨会,研讨会用这本书的第3版《Programming Microsoft Windows CE.NET》英文版作为会议资料,发给每一位与会的老师。作为软件学院的老师,我自然也有幸对本书第3版先睹为快。第3版是基于Windows CE 4.x的。从内容上讲,第3版较前几版注入了更多新鲜血液,例如设备驱动程序开发、智能手机平台开发、系统架构分析等等。从组织上,也刻意与桌面’Windows区分开来,全书五大部分中,除了第一部分,其他全是Windows CE开发特有的内容。
2008年夏天,微软中国MVP Team邀请一些MVP来翻译一些最新出版的技术书籍。在书籍列表中,我看到了本书的最新版,也就是现在的这本《Programming Windows Embedded CE 6.0》。我毫不犹豫地向微软索取了本书的最新版。从页数上说,虽然第4版比第3版要少,但是内容却更有针对性,剔除了Windows Mobile编程的部分(这的确应该是另外一个话题,微软内部都把Mobile和Embedded部门独立开来了),而在Windows CE的开发上着墨更多。蓝牙、电源管理等很多对嵌入式开发极为重要的模块都加入到了本书中。
回顾过去,本书的确是随着Windows CE的进化而发展的,作者近十年不懈地对书籍内容进行更新、修正,使得书籍的针对性、目标读者、内容定位都日趋合理。在Windows CE操作系统逐渐由丑小鸭变成会凤凰的同时.本书也在潜移默化中化茧成蝶了。
文摘 插图:
1.1.1 资源有限的Windows CE设备
运行Windows CE的目标设备的硬件资源不是一成不变的。在标准Windows平台上设计程序,对目标设备程序员可以假定很多条件,目标设备总是一台IBM兼容PC。设备使用硬盘来存储文件,包含虚拟RAM系统,可以使用硬盘作为交换设备,模拟出几乎没有容量限制的虚拟RAM。程序员知道最终用户会使用键盘,两键鼠标,显示系统至少支持256色,分辨率至少为1024×768。
运行Windows CE的设备很少使用硬盘作为存储介质。没有硬盘意味着不仅没有空间存放大文件,也不能使用硬盘模拟内存的虚拟RAM技术。所以Windows CE程序几乎总是运行在低内存环境下。因为资源有限,分配内存可能会失败。Windows CE Shell被设计为自动终止不使用的应用程序,当检测到可用内存非常低的时候。RAM的限制对Windows CE程序设计是一个很大的冲击,也是向Windows CE移植程序时的最大挑战。
1.1.2 Unil20de编码
开发Windows CE应用程序,需要使用Unicode编码。Unicode编码是一种平台无关的字符编码标准。Unicode标准中,一个字符可以用8位、16位或者32位二进制数据表示,分别为UTF8、UTFl6和IYrF32编码方式。Windows CE用UTFl6来编码字符。Unicode编码使应用程序在不同区域和语言之间的移植更加方便。Unicode的使用相对比较简便,前提是避免这样的假定,字符串由ASCII码表示,每个字符占用一个字节。
使用UTFl6编程时需要注意,每个字符占用两个字节而不是一个字节,字符串的长度是原来的两倍。程序员必须谨慎地设定缓冲长度和字符串长度。UTFl6编程时,260个字节不能存储长度为259,以0标记结束的字符串。应该使用TCHAR数据类型来替代标准的char数据类型。在开发ANSI兼容应用程序时,TCHAR被定义为char;在开发Unicode编码应用程序时,例如Microsoft’Windows 2000、Windows XP、Windows Vista和Windows CE程序,TCHAR被定义为unsigned short。这样的类型定义可以实现在ANSI和Unicode操作系统之间的源代码兼容。1.1.3新的控件
Windows CE引入了一些为特定环境重新设计的窗体控件。新的控件包括菜单栏控件,能够在一行的空间中同时提供菜单和工具栏功能,有效节省Windows CE设备较小的屏幕空间。其他控件也针对Windows CE进行了增强。编辑框控件的一个版本可以设定为自动将单词的首字母转换为大写,方便了无键盘的PDA设备的输入。