注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络操作系统其他操作系统Microsoft Windows CE程序设计

Microsoft Windows CE程序设计

Microsoft Windows CE程序设计

定 价:¥99.00

作 者: (美)[道格拉斯·博林]Douglas Boling著;北京博彦科技发展有限公司译
出版社: 北京大学出版社
丛编项: Microsoft 程序设计系列
标 签: Windows

ISBN: 9787301041864 出版时间: 1999-08-01 包装: 胶版纸
开本: 23cm 页数: 746 字数:  

内容简介

  简介我是在1996年秋MicrosoftWindowsCE发行之前开始了解这个软件的。作为一个多年的Windows程序员,我被这个操作系统深深地吸引了。这个操作系统将著名的WindowsAPI应用到一个更小、更节省能源的操作系统上。用于这个小的计算机上的API的精髓部分能使成千上万的Windows程序员为一个全新的系统类编写应用程序。然而,也有一些小的差别,使编写WindowsCE代码与编写Windows98或WindowsNT代码略有不同,我在这本书中要说明的也正是这些不同。WindoWsCE是什么?WindowsCE是最新、最小型,也是争论最多的一个非常有趣的MicrosoftWindows操作系统。WindowsCE的设计思路是一种小型的、基于ROM的、具有Win32子集API的操作系统。WindowsCE将WindowsAPI扩展到了那些认为Windows98和WindowsNT的体积太大的市场和计算机中。对于需要与DOS、Windows2.x和Windows3.x向后兼容的用户来说,Windows98是一个伟大的操作系统。尽管它也有缺点,但它在这个困难的任务面前取得了令人惊讶的成功。另一方面,WindowsNT是为企业编写的。它为取得高的可靠性和坚固性而牺牲了兼容性和大小。WindowsCE不与MSDOS或Windows向后兼容。它也不是为企业计算而设计的全能操作系统。相反,WindowsCE是一个轻量级、多线程、带有可选图形用户界面的操作系统,它的优势在于小的尺寸、Win32API子集和对多平台的支持能力。基于WindowsCE的产品第一个为WindowsCE设计的产品是手持的“管理者”类型的设备,这些设备有480×20或640×240屏幕和很好的键盘。这些被称为“手持PC”的设备,首先是在FallComdex96上展示的。在FallComdex97发布了一种得到大幅度改进的操作系统,WindowsCE2.0,它以一种熟悉的方式结合了更新的硬件——这一次,它的屏幕大小改为640×240,并且有了一个较大的键盘。在1998年的ConsumerElectronicsShow上,Microsoft宣布了两种新的平台:掌上PC和汽车PC。掌上PC针对的是现在被PalmPilot垄断的使用输入笔的管理者市场。这种掌上PC的大小有照片那么大,240×320的屏幕并使用笔式输入方式。现在市场上已经有了相当数量的掌上P。图1展示了掌上PC(这里是CasioE-10)和手持PC(这里是CasioA-20)。就在本书要出版时,Microsoft已经提出了手持PC专业版。这是一种大大增强了的,具有新的应用程序的手持PC,它使用了最新版本的操作系统,WindowsCE2.11(1)。这种产品将WindowsCE的压缩特性带到了膝上型电脑中。将WindowsCE应用到膝上电脑中的优点有很多。首先,HandheldPCPro的电池工作时间至少为10小时,比与PC兼容的膝上型电脑的平均2~3小时要长得多。其次,WindowsCE产品的尺寸和重量对用户也要友好得多,系统厚度只有1英寸,重量不超过3英磅。即使是尺寸很小,但一个HandheldPCPro仍有一个大的VGA屏幕和一个正常人即可使用的键盘。图2所示的VademClioHandheldPCPro是将WindowsCE应用在新平台中的一个例子。该系统可以作为一个标准的膝上型电脑或“翻转”为一个输入板模式的设备。这个设备就是WindowsCE如何扩展到新的系统类型的范例。我在本书中提到的HandheldPCPro是基于操作系统的WindowsCE2.1版本来说的,因为平台名称HandheldPCPro是在设计过程的末期才定下来的。实际上,我知道一种代码为Jupiter的正在开发中的HandheldPCPro。然而,在书中不能使用代码名,因此它的操作系统版本必须满足要求。其他平台——汽车PC,WebTV机顶盒和为特殊任务而设计的嵌入式平台,现在已经有了产品,或者将要在以后的几个月中出现。WindowsCE让人吃惊的是它的操作系统的灵活性,这就使它能在各种类型的设计中保留相同的、基本的和著名的Win32API。您为什么要读这本书?《MicrosoftWindowsCE程序设计》是为任何一个要为WindowsCE设计应用程序的人而编写的。对那些使用WindowsCE的为特定的应用程序编写嵌入系统的程序员和对将现有的Windows应用程序进行移植或编写全新程序的程序员来说,都可以使用本书来使他们的任务变得更加容易。对于嵌入式系统的程序员来说,可能不像Windows程序员那样熟悉Win32API,他们可以通过阅读本书的第一部分来熟悉Windows编程。这一部分与CharlesPetzold著《Windows程序设计》(第5版)(北京大学出版社,1999)不同,它不是一个全面的指南,它只为读者提供了阅读其他章节的基本信息。同样,它可以帮助嵌入式系统程序员开发复杂程度一般但具备很好的使用性的WindowsCE程序。有经验的Windows程序员可以用本书学习WindowsCE、WindowsNT和Windows98中所用Win32API的不同之处。熟悉Win32编程的程序员会认识到Windows98API和WindowsNTAPI的细微区别。WindowsCE和它的两个兄弟之间的区别就大多了。Win-dowsCE的小体积就意味着它不支持Win32模块中重复的API,甚至根本就不支持某些Win32API。另一方面,由于WindowsCE的独特设置,它将Win32API功能扩展到了在书中包含的一些领域中。本书的编写方法是通过实例来进行教学。在本书中,我写了很多WindowsCE示例程序,每个程序的源代码都打印出来了。程序的源代码和编译好的程序(这些程序可以用于WindowsCE支持的多种处理器)包括在与本书配套的光盘中。本书中的所有例子都直接写为API形式,这就是所谓的“Petzold”编程方法。由于本书的目的是让读者学会编写WindowsCE程序,所以在示例中将避免使用像MFC这样的类库,使用这样的类库会使编写WindowsCE程序的独特本质变得模糊不清。一些人也许会说,WindowsCE中MFC的实用性消除了对WindowsAPI的直接了解。我相信相反的想法是正确的。对WindowsAPI的了解会使对MFC的使用更加有效。同样,我相信对操作系统的深刻了解也能大幅度简化应用程序的调试。关于MFC一个简单的事实是,WindowsCE系统不是最好的用于像MFC那样的通用目的类库的平台。WindowsCE设备的较慢的处理器和小的内存容量会让使用MFC充满问题。绝大多数WindowsCE系统在它们的R0M中不包含MFC类库。这就意味着MFC和MFC所需要的OLE32DLL必须被下载到系统中,掌上PC的第一版甚至不支持MFC。有人说,在WindowsCE中也可以使用MFC。如果您为某个已知的在R0M中应该有MFC和OLE32DLL的系统写了一个客户程序,那么,您就可以使用MFC。对于这些特定的应用程序,您也许要使用MFC,但这仅限于您知道目标环境,并且系统已经为完成工作而配置了适量的内存。WindowsCE开发工具阅读本书的读者应该了解C语言,并且至少要对Microsoft的Windows比较熟悉。所有的代码都是用Microsoft的VisualC++5.0和WindowsNT4.0下用于WindowsCE的Win-dowsCEVisualC++完成的。要编译本书中的示例程序,您需要在标准的IBM兼容PC上运行的MicrosoftVisualC++5.0(它是集成开发环境(IDE)DevStudio的一部分)。您同样需要MicrosoftVisualC++forWindowsCE,它不是一个单独的产品,而是VisualC++5.0的一个附加项,VisualC++5.0编译器合并了一些组件,用这些组件能生成用于WindowsCE支持的不同CPU的代码。通过普通零售渠道买不到VisualC++forWindowsCE,但您可以在Microsoft的Web站点上直接获取订购信息。最后,您需要一个用于WindowsCE的平台SDK。这些平台SDK提供了用于每个WindowsCE平台的自定义包含文件,这些平台SDK可以从Microsoft的Web站点免费获得。为了方便起见,在写本书的时候,我将这个平台SDK包含在与本书配套的光盘中。尽管开发WindowsCE程序不是绝对需要WindowsNT4.0,但我强烈建议用它作为开发环境。虽然可以通过Windows98编译和下载WindowsCE程序,但是集成开发环境(IDE)的很多特性,例如,WindowsCE仿真和远程调试在Windows98中就不支持。除了一些在工具菜单中列出的新工具外,WindowsCE的VisualC++没有改变VisualC++的外观,安装用于WindowsCE的VisualC++也不会妨碍您为其他Windows操作系统编写程序。在安装了用于WindowsCE的VisualC++以后,在您创建新Win32程序时,它就会在平台列表中添加新的WindowsCE目标,例如WCEMIP、WCESH和WCEx86Em。同样,WindowsCEMFCAppWizard也将被添加到新工程列表中来帮助创建用于WindowsCE的MFC程序。 标系统您不需要用WindowsCE目标设备来体验本书中的示例程序。对于不同的平台SDK,这里有一个WindowsCE仿真器,这个仿真器允许您在WindowsNT下进行基本的WindowsCE程序的测试工作。当您想进行最初的调试工作以确保程序能启动、创建适当的窗口、对菜单选择进行了反应等时,这个仿真器是非常好用的。然而,这个仿真器也有一些局限性,并且这里没有进行替换以便让目标WindowsCE系统来对应用程序进行最终的调试和测试。在决定用什么WindowsCE硬件进行测试时,您应该考虑一些因素。首先要考虑的就是,如果该程序将是一个商业产品,那么您至少要为每个目标CP购买一个系统。您要对每个目标CPU进行测试,因为尽管源代码可能相同,但是可执行文件在大小上可能会有不同,这样对每个目标CPU的内存分配情况也会不同。绝大多数程序都是专为手持PC或掌上PC所设计的,而不是同时为它们设计的。虽然手持PC和掌上PC的基本操作系统都是WindowsCE,但其内部的硬件却差别很大。掌上PC对内存有严格的限制,它的屏幕很小,面向的对象不同,没有键盘,而这对于手持PC和HandheldPCPro都是不能接受的。掌上PC的其他一些局限,如不能打印和没有TrueType字体支持,这也使它的系统环境与手持PC有所不同。在本书中,我演示的程序能在手持PC、HandheldPCPro或掌上PC上运行。目的是让这里的课程对于所有平台都适用。然而,在某些情况下,不同的屏幕尺寸意味着示例 程序会在某个特定的系统下运行得更好。此时我会指出它们的区别以及它们存在的原因。例如,某些控件可能只存在于某一个平台上,或者存在于其他平台上。两个平台的外壳——手持PC或掌上PC——也不同,并且需要单独讲述。最后,WindowsCE中的一个小的特性集在小一些的掌上PC平台上是不支持的。光盘上有什么?配套光盘中包含了本书所有示例的源代码。我同时也为MicrosoftDevStudio提供了工程文件,这样您就可以打开预先配置的工程。除非另有说明,示例都与WindowsCE2.0兼容,这样它们就可以在现有的大多数WindowsCE系统上运行。第十三章“外壳编程——第二部分”包含了为WindowsCE2.01编译的示例程序,所以它们在现在的手持PC上不能执行。还有一些例子,例如,第十二章中的控制台程序,它们是专为HAndheldPCPro和其他在WindowsCE2.10下运行的设备编写的。当您为一个特定平台编译程序时,要记住这也许与以前的WindowsCE不兼容。例如,Microsoft将WindowsCE2.0的静态链接库中的一些C库支持转移到了用于WindowsCE2.01的操作系统,即掌上PC。这虽然减小了可执行程序的大小,但是使得掌上PC编译的代码将不能在一个运行WindowsCE2.0的手持PC上运行。然而,您仍可以为运行WindowsCE2.0的手持PC编写代码,然后让它在掌上PC中运行。除了示例程序以外,光盘上还有一些WindowsCE程序员感兴趣的文件夹。手持PC和掌上PC的平台SDK已经包含在这张光盘上了。但遗憾的是,在本书出版时,HandheldPCPro的SDK还没有完成,像其他SDK平台一样,它也可以从Microsoft的Web站点上免费获得。请仔细阅读光盘上的Readme文件,了解光盘上还有什么其他最新信息。其他资源尽管我试图让本书成为一本能包括WindowsCE编程方方面面的书籍,但是,一本书不可能包含所有的内容。JohnMurray编写的《InsideWindowsCE》是本书很好的补充,在书中,它介绍了WindowsCE的来历,了解这些信息对于理解为什么WindowsCE被设计成这样是很重要的。一旦您了解了为什么,就会很容易地推断出解决问题的方式和时间。Munay的书很了不起,这不仅因为您可以学到有关WindowsCE的知识,而且因为它是一本寓教于乐的书籍。要了解更多有关Windows编程的信息,在这里我向您推荐一本经典的书籍,CharlesPetzold著《Windows程序设计》(第5版)(北京大学出版社,1999)。这本书是迄今为止学习Windows编程最好的书。CharlesPetzold用大量的示例说明了如何解决那些尽管常见但却有一定难度的Windows问题。如果要学习更多有关Win32核心API的内容,我向您推荐JeffRichter著《AdvancedWindows》。Jeff在这本书中涵盖了极其详细的与过程、线程和内存管理有关的内容。如果要学习更多有关MFC编程的内容,没有比JeffPros-ise的《ProgrammingWindows95withMFC》更好的书了。这本书是“Petzold”风格的MFC编程方面的书,它是MFC程序员的基础读物。信息反馈尽管我尽量使本书中的内容更加准确,但是您还是会发现一些错误。如果您发现了本书的问题或对本书下一版的改进有很好的建议,请把您的想法发至CEBook@DelValle.com。我不能保证会答复所有的建议,但是我会阅读每一条建议。DougBolingTahoe,加利福尼亚1998年8月

作者简介

  作为美国《个人电脑》的资深编辑和《MICROSOFTINTERACTIVEDEVELOPER》的专栏作家,DOUGLASBOLING以其敏锐的洞察力闻名于计算机界。他是一个电子工程师,同时又是一个作家和顾问,DOUGLAS在WINDOWSCE以及其他的程序设计方面都有独到的体会和见解,并经常在主要的专业开发者会议上发表论文。

图书目录

     目录
   致谢
   简介
    第一部分 Windows 编程基础
   第一 章 HelloWindows CE
    1.1WINDOWSCE有何独特之处?
    1.1.1Windows CE设备中的资源很少
    1.1.2Unicode
    1.1.3新的控件
    1.2仍然是WINDOWS编程
    1.2.1窗口类
    1.2.2第一个程序
    1.2.3Hungarian表示法
    1.2.4我的编程风格
    1.2.5编译HelloCE
   第二章 屏幕绘图
    2.1画图基础
    2.1.1有效区域和无效区域
    2.1.2设备环境
    2.2写文本
    2.2.1设备环境属性
    2.2.2TextDemo范例程序
    2.2.3字体
    2.2.4FontList范例程序
    2.3位图
    2.3.1依赖于设备的位图
    2.3.2独立于设备的位图
    2.3.3DIB部件
    2.3.4绘制位图
    2.4线条与形状
    2.4.1线条
    2.4.2形状
    2.4.3Shapes范例程序
   第三章 输入:键盘、输入笔和菜单
    3.1键盘
    3.1.1输入焦点
    3.1.2键盘消息
    3.1.3键盘函数
    3.1.4KeyTrac 示例程序
    3.2输入笔和触摸屏
    3.2.1输入笔消息
    3.2.2TicTacl示例程序
    3.3菜单
    3.3.1处理菜单命令
    3.4资源
    3.4.1资源脚本
    3.4.2图标
    3.4.3加速键
    3.4.4位图
    3.4.5字符串
    3.4.6TicTac2示例程序
   第四章 窗口、控件和对话框
    4.1子窗口
    4.1.1窗口管理函数
    4.1.2滚动条和FontList2示例程序
    4.2WINDOWS控件
    4.2.1按钮控件
    4.2.2编辑控件
    4.2.3列表框控件
    4.2.4组合框控件
    4.2.5静态控件
    4.2.6滚动条控件
    4.2.7CtlView示例程序
    4.3对话框
    4.3.1对话框资源模板
    4.3.2创建对话框
    4.3.3对话框过程
    4.3.4无模式对话框
    4.3.5属性表
    4.3.6通用对话框
    4.3.7DlgDemo示例程序
    4.4 结论
    第二部分 WindowsCE 基础
   第五章 通用控件和WindowsCE
    5.1编写通用控件
    5.2通用控件
    5.2.1命令栏
    5.2.2CmdBar示例程序
    5.2.3命令带区
    5.2.4CmdBand示例程序
    5.2.5月历控件
    5.2.6日期和时间选择器控件
    5.2.7查看列表控件
    5.2.8LView示例程序
    5.3其他通用控件
    5.4不支持的通用控件
   第六章 内存管理
    6.1内存基础知识
    6.1.1关于RAM
    6.1.2关于ROM
    6.1.3关于虚拟内存
    6.1.4Windows CE地址空间
    6.1.5应用程序的地址空间
    6.2内存分配的不同类型
    6.2.1虚拟内存
    6.2.2堆
    6.2.3本地堆
    6.2.4单独的堆
    6.2.5堆栈
    6.2.6静态数据
    6.2.7字符串资源
    6.2.8选择正确的内存类型
    6.2.9管理低内存状态
   第七章 文件、数据库和注册表
    7.1WINDOWSCE文件系统
    7.1.1对象存储库与其他存储介质的对比
    7.1.2标准文件I/O
    7.1.3创建和打开文件
    7.1.4读取和写入
    7.1.5FileView示例程序
    7.1.6内存映射文件和对象
    7.1.7查看文件系统
    7.2数据库
    7.2.1基本定义
    7.2.2数据库API
    7.2.3AlbumDB示例程序
    7.3注册表
    7.3.1注册表结构
    7.3.2注册表API
    7.3.3RegView示例程序
    7.4 结论
   第八章 进程与线程
    8.1进程
    8.1.1创建进程
    8.1.2终止进程
    8.1.3其他进程
    8.2线程
    8.2.1系统调度
    8.2.2千万不要这样做!
    8.2.3创建线程
    8.2.4线程本地存储器
    8.3同步
    8.3.1事件
    8.3.2等待
    8.3.3互斥体
    8.3.4临界区域
    8.3.5互锁变量访问
    8.4进程间通信
    8.4.1查找其他进程
    8.4.2XTALK示例程序
    8.5异常处理
    8.5 .1(  )try(  )except块
    8.5.2(  )try,(  )finally块
   第三部分 通信
    第九章 串行通信
    9.1基本驱动程序
    9.1.1驱动程序名
    9.1.2列举活动的驱动程序
    9.1.3读写设备驱动程序
    9.2基本串行通信
    9.2.1打开和关闭串行端口
    9.2.2读写串行端口
    9.2.3异步串行I/O
    9.2.4配置串行端口
    9.2.5设置端口超时值
    9.2.6查询串行驱动程序的性能
    9.2.7控制串行端口
    9.2.8清除错误并查询状态
    9.2.9保持活动
    9.3红外端口
    9.3.1原始IR
    9.3.2IrComm
    9.4CECHAT范例程序
   第十章 Windows网络和IrSock
    10.1WINDOWS网络支持
    10.1.1WNet函数
    10.1.2ListNet示例程序
    10.2基本套接字
    10.2.1初始化WinSockDLL
    10.2.2流式套接字
    10.2.3IrSock
    10.2.4MySqurt示例程序
    10.3TCP/IPPING
   第十一章 连接到桌面
    11.1WINDOWS CE远程API
    11.1.1RAPI概述
    11.1.2预定义的RAPI函数
    11.1.3RapiDir示例程序
    11.1.4自定义RAPI函数
    11.1.5RapiFind示例程序
    11.2CEUTIL函数
    11.3连接通知
    11.3.1注册表方法
    11.3.2COM 方法
    11.3.3CnctNote示例程序
    11.3.4WindowsCE端的连接检测
    11.4 文件筛选程序
    11.4.1注册文件筛选程序
    11.4.2文件筛选程序接口
    11.4.3ICeFileFilterOptions接口
    11.4.4DivFile筛选程序范例
    第四部分 高级主题
   第十二章 外壳编程——第一部分
    12.1使用外壳
    12.1.1外壳名称空间
    12.1.2专用文件夹
    12.1.3快捷方式
    12.1.4配置Start菜单
    12.1.5最近使用的文档列表
    12.2任务栏
    12.2.1TBIcons示例程序
    12.3Out OfMemory对话框
    12.4 通知
    12.4.1用户通知
    12.4.2定时器事件通知
    12.4.3系统事件通知
    12.4.4MyNotify示例程序
    12.5控制台应用程序
    12.5.1CEFind示例程序
   第十三章 外壳编程——第二部分
    13.1辅助输入面板
    13.1.1使用SIP
    13.1.2对SIP更改的反应
    13.1.3WindowsCE2.1设备上的输入面板
    13.2编写输入方法
    13.2.1SIP组件
    13.2.2输入方法中的线程问题
    13.2.3IInputMethod接口
    13.2.4IIMCallback接口
    13.2.5NumPanel范例输入方法
    13.3硬件键
    13.3.1硬件键的虚拟代码
    13.3.2使用应用程序运行键
    13.3.3动态跳过应用程序运行键
   第十四章 系统编程
    14.1启动过程
    14.1.1复位
    14.1.2NK.exe
    14.1.3加电但不启动系统
    14.2系统配置
    14.3编写跨平台的WindowsCE应用程序
    14.3.1平台和操作系统版本
    14.3.2编译时版本问题
    14.3.3显式链接
    14.3.4 运行时版本检查
   附录 COM基础
   

本目录推荐