欢迎来到Windows CE世界
Windows CE也许是Microsoft(微软公司)所生产的最被人低估其作用的一门技术。目前,Windows CE技术在掌上电脑和手提式电脑中得到了广泛的应用。但实际上,它的应用领域远不止于此。内嵌的Windows CE环境旨在为软件开发人员和原始设备的生产厂商提供几近无限的机会。
Windows CE的编写虽然比较随意,但却是按照其“兄长”Windows的模式构造的。本书将帮助你了解这两“兄弟”的区别,并一步步地引导你通晓Windows CE的主要技术。
早在1996年,当Windows CE技术还在裙褓中的时候,我就已经使用该程序作为基础技术,从事几种硬件和软件产品的开发了。那时,我是作为技术专使在Microsoft的Siemens(西门子公司)部门工作,该部门承担双重任务:在Siemens宣传Windows CE,并将反馈信息送交给Microsoft。我在Microsoft工作期间,和Windows CE组各个部门的人都交上了朋友。 Microsoft的DRG(Developer Relations Group开发人员联络组)保证我总是能用到最新的 Windows CE设备,运行他们最新还不太成熟的下一代软件。 Windows CE市场和设备小组为我提供了最新版本的SDK(软件开发成套工具)和各种编译器。当我写这本书的时候,很多技术还不成熟。到了1998年底,我已经收集了有关Windows CE的足够丰富的信息和知识,因此我想我应该为别人写一本有用的书了。
本书请问与众不同
您从书名可以知道,这是一本技术指导性的书。但是什么又是技术指导性的书呢?一般来说,一本技术指导性的书是通过一个实例来逐步向读者解释某些内容的。本书之所以被称为一本指导性的书,是因为它将运用一种指导性的方法,使您了解所有的Windows CE技术。传统的技术书籍一般是以更理论性的方法论述一门技术——例如,通过解释应用程序接口( API)调用函数及其参数来论述。但是,就我多年的开发经验,我认为即使是最糟糕的实例也比最好的理论解释要有效。
在本书中,您会发现许许多多的小例子,还有逐步的解释,告诉您如何重新创建每个实例。开始部分,这些解释都会非常详细,但随着您的学习,这些解释会逐渐更加集中于实质部分。
另外,本书还强调了Windows 2000的重要性。这个新的操作系统很快就会成为商业界开发人员、工业用户和终端客户的必备软件。
本书还强调了Windows CE中通用对象模板( COM)方法的重要性。在数字时代以及我们很快就要到来的“分布式技术”时代中,COM是用来编制任何程序的最好的方法;——我会在第十二章中更详细地论述这一点。
“线程实例”:现实的应用程序
本书的另一特色就是“线程实例”。该线程实例是袖珍CD管理器Pocket-CD-Manager(PCDM)应用程序。此程序允许您将台式机上的“Microsoft Deluxe CD Player”和许多CD的数据库同步化,并用Windows CE设备管理它。PCDM应用程序将会涉及到Windows CE的绝大部分技术,只有极少的几个技术除外。该实例是一个现实的应用程序,您可以重新建立它,而它之所以被称作“线程实例”,是因为它就像一根红线贯穿本书的始终。本书的最后,该程序就可以使用了,而且还包括一个可再分配的安装程序。
如何阅读本书
本书运用于那些想将台式机编程经验带到Windows CE环境下,却没有在Windows CE下工作过的开发人员。换而言之,它是面向初学Windows CE的Win32专业程序员。
为了使您全面地了解Windows CE的技术,本书共包含十二章,每一章都集中论述了Windows CE的某一个领域。这些章节的顺序由现实的线程应用程序决定。正如任何一本指导性书籍都可以做到的,您将在其指导下从头至尾创建该程序。实例程序是一个袖珍CD管理器,该程序将使Windows2000台式机上的Deluxe CD Player和Windows CE设备上的CD库数据库同步化。更具体的说,您将学会如何:
分设置您的开发机器(第一章至第三章)。
中创建应用程序的首批步骤,这是通过选择框架,创建应用程序基本结构和在eMbedded Visual Basic中设计原型来实现的(第四章至第五章)。
今在介绍Windows CE COM的实例程序中,创建两个组件的框架(第六章)。
今在其他的用户界面元素中包含某些用户界面元素,如命令栏、命令带和列表视图(第七章)。
今使用注册表、对象存储和活动数据对象(ADO)向应用程序中加入存储性能(第八章)。
中增加远程技术支持,例如远程应用程序可编程界面(RAPI)、远红外通信技术和ActiveSync(第九章)。
. 今使用Windows CE的图形API程序创建奇妙的About框(第十章)。
今增加支持掌上微机的高级特性,包装整个应用程序,其实现方式是通过创建一个安装程序以在Windows CE上安装该应用程序并分配它,以及使用Windows安装技术(MSI)(第十一章)。
如果您遵循所有的步骤,最后,您就会创建一个完全实用的Pocket-CD-Manager程序。
本书还有一个目的是使实例代码尽可能的简单。但是您不必检查每个错误条件,而且有些代码看起来可能还有一点“粗糙”。例如,本书将使用固定维数的数组,而不是使用动态分配的增长列表。
除了线程实例,每章还包括一个小片段,该小片段会解释一些正在使用的技术。这就使得您如果只对某一特定的技术感兴趣的话,能够跳至任何一章。
摘要而言,每章的技术部分都有几个子部分,它们包括以下全部或部分的内容:
今对该技术的简介。
一个小程序片断,使您能快速地大致了解该技术。
一个干部分,该干部分将该技术包装在COM组件中。
一个小的Visual Basic代码段,该代码段使用前一子部分的COM组件。
将COM组件加入主PCDM应用程序的子部分。
一个小结,该小结主要是强调一些注意事项以及该技术的重要事实。
本书包括许多实例和实例代码。为了节省空间,我只提供了特定技术的代码,没有提供eMbedded Visual C++( eVC)向导创建的所有工程代码。如果您要对代码做改动的话,新的代码会用黑体字标识。大多数代码都嵌入了逐步分解的程序中,这些程序都精确地解释了您在向实例添加代码时应该做些什么。由于许多程序都有重复的内容(例如,向COM组件中加入一方法时),这些程序会随着你的学习进程变得越来越简单和粗略。
// Code 1ines themselves are printed in fixed letter spaces.
附带的光盘
本书中所有的源代码都可以在本书所附光盘中找到。光盘目录由本书的章节构成,另有一个子目录包含该线程的资源。在该目录中,您会找到一名为PCDMUI的子目录,其中的内容是有关用户界面组件的;PCDMDLL目录包括的是技术核心组件;PCDMCE目录是有关主线程实例的应用程序。
另有一些目录包含各种工具、帮助文件以及可再分配内容,您可以使用它们来评估某些第三方技术如DeviceCOM,CE的InstallShield,Microsoft的安装SDK,以及最新的ActiveSync。光盘上的源代码是用最新的Microsoft embedded Visual工具创建的。我去掉了所有的临时eVC文件,只保留了可执行文件和一些动态库,这样您就可以直接运行程序而不必重新编译它们了。如果您打开资源代码,您会发现本书中的代码是在下面两个标识行之间:
//<EOOK_ADDON chapter=x.x.x>**********************************************************
//</BOOK_ADDON Chapter*=X.X.X>**************************************************************************
线程实例代码在标识符中的章节号后加入了步骤号。如果您熟悉扩展标识语言(XML)的话,您就知道我们是使用XML语法来标识本书中的代码的。您可以通过Visual Basic宏强调书中增加代码的所在。
结束,新的开始
最后一章会阐述一些基本的观点,如接下来要做些什么,以及数字时代的将来会带来一些什么。万一您不知道用Windows CE做些什么,那就看看这章的内容。之后您就至少能有一个想法,而该想法极可能创造数字时代的一项伟大产品。