Wince 开发深入资料
第五讲wince开发基础-文档资料
常对象和常对格式如下: 类名 const 对象名; 或者: const 类名 对象名;
使用常对象成员时需要注意以下几点:
• 在定义常对象时必须进行初始化。
• 常对象的数据成员不能被更新。
•常对象对非const修饰的成员函数不能被
调用wh。
MyClass1(int i) {n=i;}
Conversion loses qualifiers
void setvalue(int i) {n=i;}
Error executing cl.exe.
void display()
{
31.obj - 2 error(s), 0 warning(s)
cout<<"n="<<n<<endl;
2. 常数据成员
与一般数据相同,类的成员数据也可以是常量和常引用, 使用const说明的数据成员称为常数据成员。如果在一个类中说
明了n个常数据成员,那么构造函数就只能通过初始化列表对
该数据成员进行初始化,其一般格式如下:
构造函数(参数表):常数据成员1(参数1),常数据成员2(参数2),…, 常数据 成员n(参数n)
其中,冒号后面是一个数据成员的初始化列表, 它包含一个初始化项,当有多个初始化项时,要用 逗号分隔开。“参数1”~“参数n”均为“参数表” 中的某个参数。这样,在执行构造函数时自动将 “常数据成员1”赋值为“参数1”的值,“常数据 成员2”赋值为“参数2”的值,…,“常数据成员n” 赋值为“参数n”的值。
}
};
void main() {
常对象a不能被更新
const MyClass1 a(10); //常对象
windows ce系统开发高级编程与典型实例
windows ce系统开发高级编程与典型实例Windows CE是微软推出的一种嵌入式操作系统,主要用于小型设备和嵌入式系统的开发。
它提供了与Windows操作系统类似的编程接口,开发者可以使用C/C++编程语言进行开发。
Windows CE高级编程主要包括以下方面:1. 系统编程:包括操作系统内核和驱动程序的开发。
开发者可以编写设备驱动程序、文件系统、网络协议栈等,以满足不同设备的需求。
2. GUI应用程序开发:Windows CE提供了类似于标准Windows操作系统的GUI界面,开发者可以使用API开发桌面应用程序、媒体播放器、游戏等。
3. 网络编程:Windows CE支持多种网络协议和通信方式,开发者可以使用Winsock API进行网络编程,实现网络通信、远程控制等功能。
4. 数据库应用开发:Windows CE提供了轻量级的数据库引擎SQL Server Compact Edition,开发者可以使用SQL语言进行数据操作和管理。
5. 多媒体开发:Windows CE支持音频、视频播放和图像处理等多媒体功能,开发者可以使用DirectShow和Media Foundation等API进行多媒体开发。
典型的Windows CE应用开发实例包括:1. 手持设备应用程序:如移动电话、PDA、扫描仪等设备上的应用程序开发,如联系人管理、日历、电子邮件等。
2. 嵌入式系统开发:如智能家居控制器、工业控制系统、POS 机等嵌入式设备的开发,如数据采集、远程控制等。
3. 车载系统开发:如车载导航、车载娱乐系统等车载设备的开发,如导航、音频播放、蓝牙连接等。
总之,Windows CE系统开发高级编程涉及到多个领域,开发者可以根据具体需求选择相应的编程接口和工具,实现各种嵌入式系统和设备的开发。
WinCE系统开发 第1章
WinCE系统开发计算机科学与技术系杨光A3-11784835205yangguang@课程考核•平时成绩–课堂表现(4%)–作业(6%)•随堂实践–3个,每个10%•期末考试–闭卷(60%)参考教材1.《Windows CE 6.0开发者参考》, DouglasBoling著,何宗键译.机械工业出版社2.《Windows CE嵌入式操作系统》,何宗键.北京航空航天大学出版社3.MSDNWinCE系统开发第1章Windows CE及开发环境概述第2章图形编程第3章对话框控件第4章进程第5章线程第6章文件第1章Windows CE简介Windows CE 是什么?Windows CEWindows CE Microsoft 公司推出的嵌入式操作系统(OS )C (Consumer 、Compact 、Connectivity 、Companion )E (Electronics )Microsoft 公司推出的嵌入式操作系统(OS )C (Consumer 、Compact 、Connectivity 、Companion )E (Electronics )嵌入式系统嵌入式系统IEEE Devices Used to Control, Monitor or Assist the Operation of Equipment, Machinery or Plants IEEE Devices Used to Control, Monitor or Assist the Operation of Equipment, Machinery or Plants 国内以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
国内以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
Windows CE的发展历程1996 WinCE 1.01997WinCE1.011997WinCE2.02000WinCE3.02001WinCE4.02001WinCE4.22004WinCE5.02006WinCE6.0Windows CE的特点支持多平台稳健的实时性精简的模块化支持丰富的多媒体强大的开发工具支持多语言Windows CE的应用领域Pocket PC SmartphoneVoip Phone机顶盒Windows AutomoiveWindows CE与Windows MobileWindows CE 嵌入式系统开发流程确定硬件提供BSP 裁剪WinCE 内核导出SDK开发、测试发布Windows CE 开发环境ActiveSync ActiveSync PB(Platform Builder)PB(Platform Builder)EVC(Embeded Visual C++)、Visual Studio 2005EVC(Embeded Visual C++)、Visual Studio 2005连接连接内核内核应用应用开发环境搭建ActiveSync ActiveSync 11VS 2005VS 200522VS 2005SP1VS Compact Framework 2.0 Compact Framework 2.0 SP144SDK Mobile 5PPC Mobile 6Professional SDK Mobile 5PPC Mobile 6Professional 55。
WinCE系统开发概述
Pocket PC 2002
内核版本
3.0
开发工具
EVC 3.0 EVB 3.0
Pocket PC 2003
Windows Mobile 2003 SmartPhone 2003 Pocket PC 2005 Windows Mobile 2005 SmartPhone 2005
4.2
4.2 5.0 5.0
34
从PB中导出SDK(Continued)
• 可以添加其它文件到SDK中
35
导入SDK
• 使用SDK安装程序安装 • 在eVC或VS2005中选择新安装的SDK • SDK可以通过控制面板的添加/删除程序卸载
36
WinCE应用开发
• • • • •
创建Win32应用程序 有用的Win32函数 Unicode Character Set 进程和线程 异常处理
Download
•Connect via Ethernet, Parallel, or JTAG •Copy NK.BIN to device •Start Windows CE Debug Monitor •Debug
Build
•Make Platform Headers •Compile •Link 29 •Make Image (NK.BIN)
Windows CE Toolkits
Toolkits for Visual C++
Platform Manager components
Toolkits for Visual Basic
30
为什么需要SDK
• • • •
WinCE是模块化的 CE设备暴露出来的接口与平台包含的组件相关 很难确定给定设备所支持的API 定制的SDK包含了指定设备所支持的API
wince开发-高级开发
过滤器分三种:源过滤器、转换过滤器和 递交过滤器。源过滤器是媒体处理的起始 点,递交过滤器是终止点,中间可以经过 任意多个转换过滤器,每个转换过滤器完 成一个处理任务,并将结果传递给下一个 过滤器。
过滤器组织结构
过滤器按照过滤器图表结构组织起来。每 个过滤器都拥有输出针或输入针或二者兼 有。输出针和下一个过滤器的输入针连接 起来实现数据的流动。
建立一个MFC应用程序
类似于Visual Studio,在EVC中也提供了应 用程序向导辅助用户定制各类应用。
这些应用包括:WINCE应用程序、COM组 件、DLL、MFC应用程序、基于MFC的DLL 和活动控件等。
与Visual Studio略有不同
选择应用程序类型时同时要选择适用的CPU 类型
很多图形接口应运而生,DirectX就是其中 之一 ,并逐渐占据了统治地位。
DirectX组成
DirectX Graphics DirectX Audio DirectInput DirectPlay DirectShow DirectSetup
DirectShow编程基本知识
XXX_IOControl 上层软件进行IO控制调用
XXX_PowerDown 系统挂起前调用
XXX_PowerUp 系统重新启动时调用
XXX_Read 打开设备时候进行的读操作
XXX_Write 打开设备时候进行的写操作
XXX_Seek 对设备指针进行操作时调用
XXX_Reinit 设备重复打开时调用
WinCE驱动模型
GWES
DDI函数
DDI函数
设备驱动程 序
WinCE应用程序开发总览
1.1 应用程序开发的界定
概念:应用程序开发是指针对特定的平台、利 用平台提供的编程接口、使用特定的开发工具, 实现特定功能的程序设计活动
在特定的Windows CE 平台下 使用该平台的编程接口实现各种功能 使用特定的工具
编程接口
Win32 API MFC 及ATL .NET Framework
3.3 EVC编程特点
3.3.1EVC中不支持的MFC类 Data Access Objects (DAO) Open Database Connectivity (ODBC) multiple-document interface (MDI) object linking and embedding (OLE) OLE documents and servers drag-and-drop features Metafiles rich edit controls
WinCE 应用开发总揽
本次课程知识要点
一、WinCE应用开发工具与技术 二、WinCE常规应用开发步骤 三、 EVC开发环境及Win32编程 四、远程调试工具介绍
重点和难点
重点 WinCE开发流程及编程接口
难点 EVC开发工具介绍及使用 定制Helloworld简单应用及下载运行
一、WinCE应用开发工具与技术
ActiveSync
Workstation
KITL TCP / IP
CE Device
Platform Manager
平台管理器的配置
Tools->configure platform manager
三、EVC开发环境
3.1 EVC的安装
2Windowsw CE应用程序开发简介
第二章:Windows CE .NET应用程序开发简介2.1开发环境与工具微软(Microsoft)提供了两个整合的开发环境来开发Windows CE .NET控制器的应用程序: Visual Studio .NET 和 eMbedded Visual C++。
他们都是由一套整合的窗口(windows), 工具(tools), 选单(menus), 工具列(toolbars), 目录(directories),和其它组件所组成,并用以帮助我们建立,开发,测试,和侦错Windows CE .NET的应用程序。
本书所介绍的是目前最新版的Windows CE .NET且使用的应用程序发展机器Wincon-8000亦是使用Windows CE .NET 为其嵌入式操作系统。
是故本书所介绍的开发工具亦是目前最新支持Windows CE .NET的Embedded Visual C++ 4.0和Visual Studio .NET 2003。
以往用Embedded Visual C++ 3.0和Embedded Visual Basic 3.0 或更旧的版本所开发出来的应用程序不能在Windows CE .NET运行,只能在其Windows CE 3.0上运行。
Embedded Visual C++ 4.0我们很快的先看一下以下eMbedded Visual C++ IDE(Integrated Development Environment)整合开发环境的一些画面。
如果大家曾经使用过 Microsoft Visual C++ 发展应用程序, 大家将发现 eMbedded Visual C++ 提供一个很类似的发展环境。
当然,与 Visual C++ 不同的是eMbedded Visual C++ 提供了一些独特的工具和资源以用来开发Windows CE .NET 的应用程序。
我们很快的先看一下以下eMbedded Visual C++ IDE(Integrated Development Environment)整合开发环境的一些画面。
wince开发-简单介绍
WinCE的主要特色 WinCE的主要特色
WindowsCE中的API是一个缩减了的WIN32API, WindowsCE中的API是一个缩减了的WIN32API, 是桌面系统WindowsAPI的一个子集。软件开发很 是桌面系统WindowsAPI的一个子集。软件开发很 方便。~PalmOS 方便。~PalmOS 软件开发具有挑战性的。在某些情况下,由于CE 软件开发具有挑战性的。在某些情况下,由于CE 的应用程序接口与标准Windows API之间存在差异, 的应用程序接口与标准Windows API之间存在差异, 原来在桌面Windows中包含的API函数在Windows 原来在桌面Windows中包含的API函数在Windows 中是不支持的,所以开发者需要自己利用 中是不支持的,所以开发者需要自己利用 其他办法来实现这些功能。 Windows 支持的内存容量和显示屏的面积也 支持的内存容量和显示屏的面积也 有限,这使得开发人员不得不考虑与硬件相关的 因素。 内核构成较大,在资源非常紧张的场合不如linux 内核构成较大,在资源非常紧张的场合不如linux 的定制灵活。
WinCE的应用 WinCE的应用
在移动领域,Pocket PC(PPC)和Smart 在移动领域,Pocket PC(PPC)和Smart Phone (SP)都是WinCE的专用版本,均于2003年推出。 SP)都是WinCE的专用版本,均于2003年推出。 这两个版本正逐步占据PDA, 这两个版本正逐步占据PDA,Smart Phone,PMP Phone, 等市场,优势已经很明显。 在工控领域,的确还不能与VxWorks的实时性相 在工控领域,的确还不能与VxWorks的实时性相 比较,但是本身的设计目标已经可以满 比较,但是本身的设计目标已经可以满 足95%的硬实时系统的要求了。 95%的硬实时系统的要求了。 信息家电领域,WinCE原有的Windows背景使得它 信息家电领域,WinCE原有的Windows背景使得它 在这一市场占据有力地位。
第01课-WindowCE开发简介
1
嵌入式的定义
• 定义 IEEE(国际电气和电子工程师协会)对 嵌入式系统的定义:“用于控制、监视或者 辅助操作机器和设备的装置”。 • 以应用为中心,以计算机技术为基础,软硬 件可裁剪,适应应用系统对功能、可靠性、 成本、体积、功耗等严格要求的专用计算机 系统。
/p/lliixxhh
• 1998年,微软公司推出Windows CE 2.0版 本,支持彩色显示。
/p/lliixxhh
3
WinCE3.0
• 1999~2000年,微软推出3.0版本,不仅仅针对掌上产品, 还可以应用在标准PC、家电和工控设备上。
/p/lliixxhh
Thanks!!!
/p/lliixxhh
2
人类交流的第二阶段
/p/lliixxhh
2
人类交流的第三阶段
• 以个人电脑为代表的互联网时代:
/p/lliixxhh
2
人类交流的第四阶段
• 以移动设备为代表的知识共享时代:
/p/lliixxhh
3
WinCE 1.0
• WinCE1.0于1996年问世,它是一种基于 Windows95的操作系统,其实就是单色的 Windows95简化版本。
/p/lliixxhh
3
WinCE2.0
3
WinCE6.X
• 2006年11月,微软公司推出Windows Embedded CE 6.X。
/p/lliixxhh
3
WinCE7.0
• 为了试用移动市场,2010年微软将推出WinCE 7.0,其中包 括:Windows Embedded Compact 7 、Windows Phone 7等。
/p/lliixxhh
wince 开发
wince 开发
Wince开发是指基于微软Windows CE操作系统的应用程序开发。
Windows CE(Compact Edition)是微软针对嵌入式设备及小型设备开发的一种操作系统。
Wince开发可
以用于开发各种嵌入式系统和移动设备上的应用程序,如
智能手机、PDA、GPS导航器、工业设备等。
Wince开发可以使用多种编程语言,包括C++、C#、Visual Basic等。
开发工具可以使用微软提供的Visual Studio开发环境,如Visual Studio 2008、Visual Studio 2010等。
在开发过程中,开发者可以利用Windows CE
的API和库来访问设备的硬件功能,如屏幕显示、触摸屏
输入、网络通信等。
Wince开发过程中,开发者需要对Windows CE操作系统、设备驱动程序、应用程序等有一定的了解。
同时,还需要
考虑设备的资源限制,如内存、处理能力等。
开发者还可
以使用模拟器来模拟嵌入式设备的功能,以便在开发过程
中进行调试和测试。
总的来说,Wince开发提供了一种方便快捷的方式来开发
嵌入式系统和移动设备上的应用程序。
通过使用Windows CE操作系统和相关的开发工具,开发者可以创建功能强大、稳定可靠的应用程序,满足用户的需求。
WinCE嵌入式系统开发平台
WinCE具有实时性、可靠性、可定制性等特点, 同时拥有丰富的驱动程序和第三方软件资源,方 便开发者快速开发出高性能的嵌入式系统。
02
CATALOGUE
Wince嵌入式系统开发平台的特点
实时性
实时性是Wince嵌入式系统开发平台 的重要特点之一。该平台能够快速响 应外部事件,确保系统在规定的时间 内完成关键任务,满足实时性要求。
Wince嵌入式系统开发平台的未来发展
物联网技术的发展
物联网技术将进一步推动Wince嵌入式系统在智能家 居、智能工业等领域的应用,实现设备间的互联互通 和智能化控制。
随着物联网技术的不断成熟,Wince嵌入式系统将能 够支持更多的设备接入,实现更广泛的数据采集和远 程监控功能。
人工智能技术的应用
系统实现
开发环境搭建
配置开发所需的软件和硬件环境。
代码编写与调试
依据设计文档,编写代码并进行调试。
系统测试与优化
功能测试
对系统各项功能进行测试,确保符合需求规格说明书的要求。
性能测试
测试系统的性能指标,如响应时间、稳定性等。
优化调整
根据测试结果,对系统进行优化调整,提高性能和稳定性。
06
CATALOGUE
低功耗
低功耗是Wince嵌入式系统开发平台 的又一重要特点。该平台采用了低功 耗技术和节能设计,能够有效地降低 系统的功耗,延长系统的使用寿命。
VS
Wince嵌入式系统采用低功耗处理器 和节能组件,同时通过合理的电源管 理和节能策略,实现系统的低功耗运 行。这种低功耗设计有助于减小系统 的体积和重量,降低对电源的需求和 维护成本,提高系统的便携性和可用 性。
云计算技术将促进Wince嵌入式系统与其他系统的集成,实现跨平台的数据共享和业务协同。
WinCE应用程序的开发
WinCE应用程序的开发WinCE 应用程序的开发是WinCE 开发中很重要的一个环节。
本文将简单介绍一些WinCE 应用程序开发的基本概念。
先说开发工具,目前用得比较多的开发工具有EVC4(SP4)、VS2005、VS2008 和Platform Builder。
其中Platform Builder 主要是用来定制操作系统的,虽然也支持编写应用程序,但用得相对较少。
记得没错的话,它还得先编译系统,才能新建应用程序的工程。
VS2005 和VS2008 是微软的集大成开发工具,PB6.0 就是作为VS2005 的插件安装的(PB6.0 目前应该是不支持VS2008)。
在VS2005 中,你可以编译WinCE6.0 的操作系统,也可以编译设备上的应用程序,省去了切换开发环境的麻烦。
EVC4(SP4)即嵌入式的VC,使用起来基本跟VC6.0 一致。
WinCE 应用程序的开发相对桌面Windows 应用程序的开发有一些特点,如下:1. UNICODE 编码。
WinCE 中的应用程序只能使用UNICODE 编码,桌面系统则支持UNICODE 和ANSI 码。
在移植PC 端程序到设备上时需要注意这一点。
2.SDK。
SDK 即软件开发支持包,软件开发都少不了这个,但在WinCE 应用程序的开发中尤为重要。
因为WinCE 系统本身是一个非标的操作系统,它的组件特性和可裁剪性决定了不同的系统支持的API 是不同的。
而桌面系统相对标准,SDK 的作用就弱化了。
WinCE 中的SDK 由系统开发人员在编译完系统后,通过Platform Builder 导出。
应用程序的开发人员安装此SDK,并编写。
wince 开发
wince 开发Wince 开发概述:Wince(Windows Embedded Compact),是微软推出的一款嵌入式操作系统平台。
它主要针对嵌入式设备,并提供各种工具和功能,使开发人员能够创建和定制各种嵌入式系统。
本文将介绍Wince开发的基础知识、开发环境搭建和常用开发技巧,以帮助读者快速上手Wince开发。
一、Wince 开发基础知识1. Wince特点:Wince是一个轻量级的操作系统,具有小巧灵活、可裁剪、实时响应等特点。
它适用于各种嵌入式设备,如手机、PDA、智能手表等。
Wince提供了基本的系统服务和API,开发人员可以利用这些功能构建自己的应用程序。
2. 开发工具:Wince开发主要使用Visual Studio平台,其中包括Visual Studio 2008、Visual Studio 2010等版本。
开发人员可以利用这些集成开发环境(IDE)进行应用程序的开发、调试和部署。
3. 编程语言:Wince开发支持多种编程语言,包括C++、C#、Visual Basic等。
开发人员可以根据自己的喜好和项目需求选择合适的编程语言进行开发。
4. Wince应用程序:Wince应用程序可以分为两类:桌面应用程序和嵌入式应用程序。
桌面应用程序类似于Windows操作系统上的应用程序,提供丰富的图形界面和交互功能。
嵌入式应用程序更加注重系统资源的管理和性能优化,通常以服务的形式运行。
二、Wince 开发环境搭建1. 安装Visual Studio:首先,需要安装符合Wince开发需求的Visual Studio版本。
根据实际情况选择合适的版本,并按照安装向导进行操作。
2. 安装Wince平台构建工具:在Visual Studio安装完成后,需要安装Wince平台构建工具,以便进行系统和应用程序的构建。
安装过程类似于安装Visual Studio,根据安装向导进行操作。
3. 创建Wince项目:打开Visual Studio,选择新建项目,选择Wince平台项目模板,然后按照提示进行操作。
wince系统开发
WINCE 系统开发实验指导书WINCE 系统实验指导书 (1)实验一、Windows CE系统平台的创建及模拟器的使用: (2)一、实验目的 (2)二、实验内容 (2)三、预备知识 (2)四、实验设备 (2)五、实验原理 (3)六、实验步骤 (4)七、思考题 (11)实验二、Windows CE BOOTLOADER 实验...................................... 错误!未定义书签。
一、实验目的................................................................................. 错误!未定义书签。
二、实验内容................................................................................. 错误!未定义书签。
三、预备知识................................................................................. 错误!未定义书签。
四、实验设备及工具..................................................................... 错误!未定义书签。
五、实验原理及步骤..................................................................... 错误!未定义书签。
六、思考题..................................................................................... 错误!未定义书签。
实验三、Windows CE驱动开发 .......................................................... 错误!未定义书签。
wince资料
问:什麽是Windows CE?答:Microsoft Windows CE 是针对广泛范围的通讯]、[娱乐] 和[行动运算装置的开启、可调适Windows 平台。
标准基础Windows CE 平台是建置从地面到产生可能新的类别的商务和消费者非电脑装置可互相通讯、与Windows 的电脑共用资讯和连线到网际网路的全新作业系统。
问:为何未Microsoft 开发Windows CE?答:对于过去几年来Microsoft 有概述其愿景可以'资讯在您方便,' 在其中每个服务人员和每一家中的个人电脑概念发展成一个电脑为基础的装置,以各种商务和消费者环境。
Windows CE 作业系统是以满足该愿景multiyear 开发工作的结果。
Windows CE 与Microsoft 会提供将会大幅降低OEM 硬体製造商hurdles 一个开放、标准为基础平台软体开发人员和,最终,客户採用新的非电脑技术和解决方桉。
问:什麽新的产品是Microsoft 规划,或Microsoft 不会规画,根据Windows CE 吗?根据Windows CE 答:第一个产品将会是新的Windows 架构的个人电脑称为掌上型PC 或H 的行动的同一系列文件装置分类/ PC H/PC 设计用来提供数百万个行动专家使用Windows 个人电脑来执行其最重要的资讯时,它们会离开其电脑的价格合理、简便易用,PC 同系列。
Windows CE 会是适合的装置的其他类别,包括其他小型的表单係数行动运算装置例如「电子钱包「个人电脑,无线通讯装置(如数位资讯呼叫器和行动电话的智慧电话、下一代多媒体及娱乐主控台包括DVD 播放机和purpose-built 网际网路存取装置如网际网路电视、数位机上盒与网际网路」Web 电话"。
问:当根据Windows CE 的产品才可使用?答:Microsoft 期望宣佈协力厂商软体应用程式或H/PC 週边设备在今年的COMDEX 会呈现拉斯维加斯H/PC 装置的可用性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Service的加载
Service.exe是操作系统的一个可行组件, 在系统启动时被内核加载。 Service.exe加载前要求Device.exe先行加 载。
服务程序的实现
在Windows CE中,实现一个服务程序与 实现流式接口驱动程序非常相似,所有 有服务程序均以动态链接库提供,并导 出其中的相关接口函数。 与流式接口驱动程序类似,服务程序有 也一个3字符的Prefix和一个Index,这些 信息也在注册表中被设置。
在设备中,经常需要有一些程序从开机 就运行,一直运行到设备关闭为止,在 整个设备开机期间不会关闭。 这类程序一般是在系统的后台为用户提 供一些服务。 这类程序被称为服务(Service)程序。
Service.exe
在Windows CE中,有许多网络服务器都 是通过服务实现的。如文件服务器、FTP 服务器、Telnet服务器、打印服务器及 HTTP服务器。 服务管理器是由进程Service.exe来实现的, 其工作机制与功能与设备管理器 Device.exe非常相似。 Device.exe负责加载所有的驱动程序, Service.exe负责加载所有的服务。
Web Server的源程序
Windows CE提供了Web Server的源代码, 用户可以在
C:\WINCE500\PRIVATE\SERVERS\HTTP
目录下看到相关代码。 用户可以在微软授权的情况下使用并修 改其代码。
服务的手工加载
应用程序通过服务的API函数动态加载服 务程序。 Windows CE提供ActivateService()函数来 实现服务的动态加载。
独立服务(Standlone Service)
一般情况下,Service.exe进程负责加载所 有的服务。 在一些特殊情况下,可能需要将一个服 务由Service.exe进程单独加载,从而实现 与其他服务的隔离。 如果服务在Service.exe进程中单独加载, 这个服务称为独立服务。
服务的启动
Windows CE的服务有两种启动方式 通过注册表中设置相应的注册表项, 系统启动时,让Service.exe自动加载服 务。 应用程序使用函数加载服务
服务的自启动
当Windows CE启动时,Service.exe搜索 系统注册表中的 HKEY_LOCAL_MACHINE\Service 然后枚举Service下的所有子键,并依次 Service 加载所有的服务。
下的Context项设置为1。 当服务管理器在加载该服务时,会使用 ServiceIoControl()函数向服务发送相关控制字。 如果服务也支持超级服务,只需在其 IOControl()接收该控制字,并返回True,就可 以启动超级服务了。
配置端口号
服务管理器自动侦听的端口也可在注册 表中配置。 端口号只需在注册表
典型的超级服务:Web Server
Windows CE的Web Server是Windows IIS 的一个子集,提供了将嵌入式设备配置 为一个Web Server的功能。 嵌入式Web Server在实际的应用中具有非 常实用的意义,尤其在无线自动检测有 更重要的作用。
Web Server的声明文件(def)
HKEY_LOCAL_MACHINE\Service\服务\
下的Context项。 如果Context项设为2,则表明该服务为独 立服务。
超级服务(Super Service)
在Windows CE下,许多服务程序都是作 为网络服务服务器存在的。这些服务都 会侦听某个网络端口,当有客户连接这 些端口时,服务程序会给客户提供相应 的服务。 这样的服务,Windows CE称之为超级服 务。
HKEY_LOCAL_MACHINE\Service\服务 \Accept
下面增加相应项即可 服务管理器会读取注册表,然后调用 Socket函数侦听相应的端口。
超级服务的过程
当客户端在相关端口有请求时,服务管 理器会向服务发出 IOCTL_SERVICE_CONNECTION消息, 同时把socket的句柄作为参数传递给服务 程序。 服务程序对连接进行进一步的控制和操 作。
项目11:基于 的嵌入式Web服务器 (2) 项目 :基于Windows CE 5.0的嵌入式 的嵌入式 服务器 )
本节课程主要知识点 Windows CE服务程序
重点和难点
重点 Windows CE服务 难点 服务中的网络服务
Windows CE服务程序 服务程序
Windows CE服务程序
LIBRARY HTTPD EXPORTS HttpInitialize PRIVATE HttpdStart PRIVATE HttpdStop PRIVATE HttpdStopAndRestart HTP_Init PRIVATE HTP_Deinit PRIVATE HTP_Open PRIVATE HTP_Close PRIVATE HTP_Read PRIVATE HTP_Write PRIVATE HTP_Seek PRIVATE HTP_IOControl PRIVATE HTP_PowerUp PRIVATE HTP_PowerDown PRIVATE HttpInitializeFromExe PRIVATE
独立服务的特点
独立服务不能被应用程序使用CreatFile() 和GetServiceHan务,如Web Server。 独立服务独立占用内存的一个Slot,需要 统筹考虑Slot资源的调配。
独立服务的实现
要把某一个服务配置成独立服务,只需 配置注册表键
超级服务与网络服务
超级服务实现了Service.exe对某些端口的 监听,当有客户连接时,Service.exe会通 知相应的服务程序去处理该请求。 网络服务大都是超级服务,有了超级服 务,一些使用网络提供的服务将会大大 简化。
超级服务的配置
要把某个服务配置为超级服务,只需在注册表 中把
HKEY_LOCAL_MACHINE\Service\服务\