MicrosoftWindows CE是紧凑的、高效的和可晋级的操作体系,它被广泛的运用在各种嵌入式式的产品中,从手持电脑到专门的工业控制器和消费用电子产品中。Windows CE现已通过了其本身的才能证明:它可以满意32位嵌入式式程序开发的需求。 相同重要的是: Windows CE使嵌入式式体系的规划者得以充分利用Microsoft的32位根据Windows的开发东西的悉数的函数。
嵌入式的运用软件挑选Windows CE的首要原因之一是Microsoft Win32运用编程接口(API)的广泛运用。从运转在Microsoft WindowsNT操作体系下的高端服务器到最小的台式机和内嵌式的运用中,WIN32 API几乎是一切为面向Windows开发32位运用软件的内核。
本文的意图是向那些开发根据Windows CE的新的嵌入式式体系的开发者介绍WIN32 事情驱动编写程序。 本文将:
概述32位Windows操作体系和WIN32编程模型。
介绍线程,事情和音讯是怎么操作的。
给出Win32怎么办理Windows CE的内存。
解说 Win32意外操作的概念。
比较同步和不同步设备的界面的不同的办法。
总结清晰界说的API的优位。
本文并不是故意要彻底做Win32的编程攻略,而是要介绍用Win32作为嵌入式式运用程序的开发东西。
简介
关于全世界的不计其数的程序开发者来说,Win32程序方式很常见。WIN32是台式机或企业广泛运用的强壮方针,而且跟着Windows CE的出现,它也成了嵌入式式体系的抱负的程序界面方式。WIN32为Windows CE操作体系供给了共同的,文档齐备的而且函数强壮的程序界面。
用WIN32在Windows CE渠道开发的程序同其他的WIN32程序差不多;这意味着程序开发者在开发新的面向Windows CE操作体系的运用程序的时分,可以运用这些许多的WIN32的程序资源、第三代东西和外部的专门的技能。具有WIN32编程经历的程序员会发现创立新的(维护已有的)面向Windows CE设备(如手持电脑)的运用程序远比创立相似的面向特别的渠道或其他运用不广的嵌入式式的操作体系的运用程序简略。
嵌入式式体系的规划者们很快意识到Windows CE的强壮,而且以惊人的快速使这个操作体系与它们的新产品一体化。可是,许多嵌入式式软件的开发者对Windows的事情驱动程序的一般技能不熟悉。关于这些软件开发者来说,在他们开端他们第一次的根据Windows CE的项目之前,了解一些WIN32的根底的常识是有优点的。
什么是WIN32?
“WIN32”表明关于一切的Microsoft 32位渠道的一种一般的运用编程接口(API)。这些渠道一般指:
Windows 95, Windows 98
Windows NT
Windows CE
本文咱们首要重视Windows CE操作体系,可是需求弄清楚的是大多数 Win32的运用编程接口对上面一切三种渠道都适用。这种同用的运用编程接口的优位有许多:简单登录到运用程序中,有许多的已有程序的常识,典范和第三代软件的资源。
渠道的不同
WIN32的运用编程接口界说了你作为一个程序员有用的Windows渠道。WIN32运用编程接口的意图是供给了一个常用的界面的设置,可是虚拟,不同的渠道因为不同的特性及硬件的束缚,其运用编程接口也不同。WIN32渠道宗族的一些成员支撑悉数的WIN32的运用编程接口(下简称API),而其他的只支撑一部分的API。 为紧凑的、嵌入式式的运用软件和小型设备而规划的Windows CE,WIN32的API最受约束。虽然如此, Windows CE 的API也是满足完善的,可以处理实践的许多的高档的嵌入式式运用程序。
WIN32与Microsoft基本类库(MFC)
用WIN32界面规划并不是创立32位根据 Windows的运用程序的仅有的途径。另一种重要的途径是可在WIN32与 Microsoft Visual C++开发环境运用的Microsoft基本类库(MFC)。MFC为许多(不是一切)的WIN32的API进行了高度的封装(图1)。 一般,MFC供给了代表重要的WINDOWS的用户界面方针的类,象窗口,对话框,画刷,画笔,和字体。MFC也为没有任何用户界面要求的嵌入式式运用软件供给了相应的类。MFC类的成员函数调用WIN32API的函数,可以使杂乱的运用程序的规划奇妙的简化。
作为WIN32的程序员,你可以自在的选取运用C或C++和WIN32 API, 或许用C++与MFC。VISUAL C++开发体系关于一切的,包含 Windows CE 的WIN32的方针操作体系都支撑以上的两种开发体系。
本文直接介绍WIN32 API。运用 Windows CE下的MFC的具体的音讯,参看 Windows CE SDK文档。
WIN32程序模型
WIN32是逾越一切32位WINDOWS渠道的常用和共同的(虽然并不悉数相同)API。为了对WIN32 API有一个透彻的了解,以便高效的运用它的函数,了解一些底层操作体系的根底非常重要。本节总结了32位操作体系和 Win32 API的最重要的概念,为你更深化的学习供给根底。要得到更多更具体的关于32位WINDOWS的体系结构、 Win32 API、以及其他的程序规划的主题,你可以读一本关于那个主题出书的书。Microsoft出书社能供给一些这样的书本;在本文的最终,列着部分这些书的条目。
Windows CE的内核和 Win32 API
那些对WINDOWS CE的人或许会有一个幻觉,以为它只是是现有的操作体系(如WINDOWS95)降级版。但事实上Windows CE是以小型的、高度用户化的面向嵌入式式运用程序的操作体系开发起来的。在WINDOWS CE扫除(或替代)了一些根据WINDOWS CE的运用软件所不需求的操作体系特性的一起,它的内核也具有许多的其他Microsoft 32位的操作体系的最精华的东西。例如在Windows NT下, 一切的在Windows CE下运转所运用软件都运转在有优先权的多任务处理环境下,在被全维护的内存空间里。还有,象 Windows NT相同,Windows CE支撑本地一致的字符编码规范码字符串,使它更适于世界推行。可是,不象其他的32位WINDOWS渠道,, Windows CE是非常紧凑和用户化的,只是占用小于200K的内存。
Windows CE的WIN32 API比其他的32位的Windows操作体系的WIN32 API要小;它只包含大约相当于Windows NT的对折的API。可是 Windows CE的WIN32 API也有其他体系所没有的特性。例如:告诉API,它可以操作体系的层次,而不是在运转的运用程序的层次上处理告诉事情(如时钟)。触屏的API和对Windows CE的数据库的内置的支撑是其他的操作体系所没有的。触屏的API运用于触觉灵敏显示器的屏幕校正和用户交互的办理简单完成,而数据库的API供给了快速简捷的拜访紧凑的、一般用处的数据库的东西。另一个关于Windows CE的不为人知的方面是它的高度的模块化;嵌入式式体系开发者(用Microsoft Windows CE内含的面向Visual C++的软件包)可以创立一个关于它们的共同的硬件渠道和运用软件用户化了的Windows CE的版别。