1 / 188

第十五章 Windows CE.NET 应用开发

第十五章 Windows CE.NET 应用开发 . §15.1 应用开发概述 §15.2 Windows CE 的应用编程接口 §15.3 Windows CE 应用开发工具 §15.4 eMbedded Visual C++ 4.0 应用开发概述 §15.5 Windows CE 通信开发实例 附录 1 : .NET Compact Framework 开发 附录 2 : WinCE 高级编程 附录 3 :应用程序开发实例. 15.1 应用开发概述. 15.1.1 Windows CE 应用程序开发流程. 开发环境的搭建

pravat
Download Presentation

第十五章 Windows CE.NET 应用开发

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第十五章 Windows CE.NET应用开发 §15.1 应用开发概述 §15.2 Windows CE的应用编程接口 §15.3 Windows CE应用开发工具 §15.4 eMbedded Visual C++ 4.0应用开发概述 §15.5 Windows CE通信开发实例 附录1: .NET Compact Framework开发 附录2: WinCE高级编程 附录3:应用程序开发实例

  2. 15.1 应用开发概述

  3. 15.1.1 Windows CE应用程序开发流程 • 开发环境的搭建 • 应用程序代码的编写和调试 • 应用程序的发布

  4. 应用开发流程

  5. 15.1.2 Windows CE编程特性 • CE不能运行现有的桌面应用程序 • 内存管理 • 电源管理 • 用户界面

  6. 15.1.3 Windows CE编程基础 • 1. Windows 消息处理机制

  7. 2. Unicode • 使用Unicode进行应用程序开发可以满足产品国际化的要求,也可以很容易地在不同语言之间进行数据交换,使开发者能够自由分配支持所有语言的单个二进制.exe文件或.dll文件,同时提高应用程序的运行效率。 • Windows CE规定,所有的字符串必须采用Unicode类型而不是char类型声明,程序中的所有文本文字必须是Unicode字符串,同时,必须为Unicode字符串选择正确的运行库函数。

  8. 3. 文件I/O • 与桌面Windows相比较,Windows CE没有当前目录的概念,所有的文件名和路径都必须以“\”开始使用完整的路径名,文件名必须是Unicode。 • 在读写一个文件时,应用程序使用内存映射的I/O代替使用缓冲的I/O。

  9. 4. 内存要求 • 基于嵌入式系统的特征,应用程序必须是低内存要求,应用程序必须保存静态变量的大小和数量为最小,必须保持较小的EXE文件,随时检查内存分配的返回值,集中分配应用程序的内存,并且处理WM_HIBERNATE消息。

  10. 15.2 Windows CE的应用编程接口

  11. Windows CE的应用编程接口 • Windows CE .NET 应用程序开发人员目前有三种API可以选择,它们分别是: • Win32 API(应用程序接口) • MFC(微软开发类库)与ATL(活动模板库,它主要用于创建 COM 组件、Web 服务和 Microsoft ActiveX 控件) • Microsoft .NET Framework 精简版。

  12. 15.2.1 Win32 API • Win32应用编程接口的目的是提供了一个常用的界面的设置,但不同的平台由于不同的特性及硬件的约束,其部分应用编程接口也不同 • Windows CE.NET API函数从用途上主要分为下列几大类: • 服务性应用、最终用户、核心操作系统服务、通信和网络、文件系统和数据存储、字体、硬件支持、国际化、Internet客户端、多媒体、安全、外壳。

  13. Win32程序模型 • Windows CE的Win32 API具有一些独有的特征: • 它比其他的32位的Windows操作系统的Win32 API要小,它只包括大约相当于Windows NT的半数的API; • 它能够在操作系统的层次,而不是在应用程序的层次上处理通知事件(如时钟); • 触摸屏的API • 对数据库的内置的支持 • 高度的模块化

  14. 15.2.2 MFC • MFC是一个基于C++语言的面向对象的程序设计框架,它大大简化了Windows的编程工作 • 同桌面Windows 的MFC库相比较,Windows CE.NET的MFC库在包含的C++类方面有所不同

  15. 15.2.3 ATL • Windows CE提供了对ATL的支持,ATL是ActiveX Template Library的缩写,它是一套C++模板库,利用它可以开发出体积更小、速度更快的控件,对于COM组件的开发,它提供了最大限度的代码自动生成以及可视化支持。 • Windows CE所支持的ATL是桌面Windows中ATL的一个子集 • ATL主要在应用层上支持基于COM组件技术的OLE2和 ActiveX

  16. 15.2.4 .NET Compact Framework • Win32 函数基本上是分散在一组动态链接库 (DLL) 中,所有函数都被保存在文件、库文件或者DLL当中。要找到某个函数,必须非常清楚包含该函数的文件或者DLL,这是很费劲的一种工作。 • .NET Framework 是一种专门为易于使用而设计的面向对象的 API。.NET API 的用户界面经过了精心设计,是“可发现的”,其目的是:一旦开发者了解了基础知识,就非常容易进行编程。

  17. .NET Compact Framework • Microsoft .NET Framework 精简版(.NET Compact Framework)是一种用于Microsoft Windows CE .NET和Microsoft Windows for Pocket PC的新型应用程序编程接口 (API) • 它为程序员提供了两种编程语言选择: • 一个是Microsoft Visual Basic 的兼容 .NET 的版本,称为 Visual Basic .NET; • 另一个是Microsoft Visual C#,这是专门为 Microsoft .NET 开发的 C 和 C++ 语言家族中的一个新成员。

  18. .NET Compact Framework • 通过Platform Builder,开发者能够为特定目标硬件配置和生成 Windows CE 映像。所有映像都是从以下两种基本配置生成的: • 无头 (HLBASE) 配置 • 基于显示器 (IABASE) 的配置。 • 尽管每种配置都可修改成与另一种相似,但较适合 Framework 精简版的一种是 IABASE,因为.NET Framework 精简版主要是用来构建 GUI 应用程序。

  19. Windows CE .NET Platform Builder 的典型配置类型

  20. 15.2.5 各种编程接口的比较 • 资源占用方面 • 程序运行大小方面

  21. 15.3 Windows CE应用开发工具

  22. 15.3.1 Windows CE应用程序开发的选择 • Windows CE应用程序开发,代码的选择主要有两种: • 托管代码:是指使用.NET Compact Framework开发的程序代码,可执行文件被编译成MSIL,执行时需要有.NET的运行时环境。托管代码的典型例子就是Visual Basic .NET和 C# .NET。 • 本地代码:也称为非托管代码,是指使用C++等高级语言开发的程序代码,可执行文件被编译成与CPU指令集有关的机器码,可以直接运行。由eMbedded Visual C++ 开发出来的代码就是本地代码。

  23. 托管代码特征 • 托管代码是可移植代码,这是因为.NET的可执行程序能够运行在任何已经安装了相应的通用语言运行时(CLR)的平台上,而不管是哪种CPU。 • 托管代码也是安全代码,因为它有一整套特性来避免令人烦恼的非托管代码中存在的问题,例如隐式指针,可以消除内存泄漏的自动内存管理和防止内存越界的数组边界保护。 • 我们有时也称托管代码为“.NET代码”,因为托管代码直接依赖于.NET精简框架中提供的编程接口。

  24. 本地代码的特征 • 本地代码之所以被称为“Native”,是因为生成的可执行文件格式不是可移植的CIL格式,而是本地的处理器指令集,如SH3或者StrongARM处理器。 • 同时,本地代码也被称作非安全的代码(Unsafe code),因为它缺少对内存泄漏、“坏”指针和数组越界的保护机制,而这些机制都在通用语言运行时中已被提供。

  25. 托管代码和本地代码的区别 • 本地代码主要针对于Native 应用 • 托管代码主要针对于.NET应用

  26. 托管代码的编译和运行过程

  27. 15.3.2 Windows CE应用程序开发工具概述 • 在开发Windows CE应用程序时,我们可以选择的工具包括以下三种: • eMbedded Visual C++ 4.0: • Visual Studio .NET 2003 • Visual Studio 2005 • 一般来说,程序员可以使用 Visual Studio .NET 2003或者Visual Studio 2005来创建针对 .NET Framework 精简版的应用程序,可以使用eMbedded Visual C++ 4.0或者Visual Studio 2005创建应用程序。

  28. 开发模型的演变 • Windows CE 4.x开发模型

  29. Windows CE 5.x开发模型

  30. 15.3.3 EVC集成开发环境 • 多数程序员的最佳选择仍然是eMbedded Visual C++,因为嵌入式系统资源有限,C++编译器效率高、性能好,编译出的应用程序结构紧凑

  31. 1. EVC概述 • 随着Windows CE版本变化,eVC也推出了相应的版本。其对应关系如下表

  32. (1) SDK • SDK(Software Development Kit)包含了一个特定平台的所有函数。 • 在使用eVC进行开发前,必须安装特定平台的SDK,而且进行开发时必须了解特定平台支持的函数,在SDK中不包括的函数不能使用。 • Microsoft提供了一些SDK,如Standard SDK、Pocket PC2003、SmartPhone2003等等。

  33. SDK的导出 • 如果使用 eVC针对某一特定硬件平台进行开发,那就要从Platform Builder导出特定平台的SDK,然后安装SDK。 • 导出的SDK是一个Windows安装程序(.msi文件),SDK的内容取决于包含在平台中的操作系统配置、运行时库、OAL(OEM Adaption Layer)、和设备驱动程序。

  34. (2)EVC集成开发环境 • 在Windows CE下开发软件的编译器必须满足两个特点:第一、程序能够相对快速地执行;第二、相对减少对系统资源的消耗。EVC是最符合这两个特点的.

  35. EVC集成开发环境 • EVC集成开发环境包括以下内容: • 编译器:包含c/c++编译器。 • 模拟器:一个运行在CPU Ring 3 级别的用户程序。 • 平台管理器:能够将编译的程序下载到指定的平台上。 • 调试器:能够单步执行程序和设置断点。 • 工作区:包含类视图、资源视图、文件视图。 • 代码编辑区:也就是文本编辑器。 • 类向导和应用程序向导。 • 远程调试工具。 • 帮助文档和在线帮助。

  36. EVC 与VC的区别 • EVC编译器支持多种嵌入式CPU,支持多种指令集。VC只支持X86指令集。 • 为了能在开发机上调试,EVC包含一个模拟器,而VC不具备,也不需要。 • EVC包含远程调试工具,而VC只包含本地调试工具。 • 随EVC安装附带的SDK内容非常少,必须安装Windows CE.NET才能得到全部的SDK。随VC附带的SDK则包含全部的内容。

  37. 2. EVC集成开发环境的重要工具 • (1)模拟器

  38. (2)平台管理器Platform Manager

  39. (3)EVC远程工具

  40. 15.3.4 Visual Studio.NET工具 • Visual Studio是Windows平台下的应用程序集成开发环境,它是一个强大的可自定义编程系统,可以利用它所包含的各种工具快速有效地开发功能强大的Windows应用程序、Web应用程序和移动设备应用程序。

  41. 1. 编程语言 • 在Visual Studio.NET中,编程语言分为两种: • (1)C# • (2)Visual Basic .NET

  42. 2. SDE • 智能设备扩展(Smart Device Extension ,SDE)是一个Visual Studio集成包(Visual Studio Integration Package ,VSIP),它是Visual Studio.NET的插件。与eMbedded Visual Tools工具不同,它不能单独运行,而必须安装Visual Studio.NET后才能使用。 • 在SDE中,包含了一系列预建的设备模型以及设备开发包,可以帮助开发人员针对特定目标设备开发特定的应用。SDE允许直接写应用程序到Windows CE.NET设备或仿真器,并且可以为嵌入式设备定制Visual Studio.NET开发环境。

  43. 3. 基于.NET Compact Framework的编程

  44. .NET Compact Framework组成 • WinForms • ADO.NET • XML and XML Web Services

  45. WinForms • 表单: • Form f = new Form(); • f.Text = “My Application”;//设置表单头 • 控件: • Button b = new Button(); • f.Controls.Add(b);//将按钮控件添加到表单中 • 时钟: • Timer t = new Timer(); • t.Interval = 1000 ; //设置时间间隔milliseconds

  46. WinForms示例 • public class HelloWorld • { • public static void Main() • { • Form frm = new Form( ); • Label lbl = new Label( ); • lbl.Text = "Hello world"; • frm.Controls.Add(lbl); • Application.Run(frm); • } • }

  47. ADO.NET

  48. ADO.NET编程实例 • 建立DataSet的过程 • DataSet myDS = New DataSet("Project"); • DataTable myDT = myDS.Tables.Add("Task"); • myDT.Columns.Add("Name", System.Type.GetType("System.String")); • myDT.Columns.Add("Start", System.Type.GetType("System.String")); • myDT.Columns.Add("Duration", System.Type.GetType("System.String"));

  49. 填充DataSet • DataRow myDR = myDS.Tables["Task“].NewRow(); • myDR["Name“] = "Design Code“; • myDR["Start“] = "2/1/2003" ; • myDR["Duration“] = "2 days“; • myDS.Tables["Task“].Rows.Add(myDR);

  50. 15.3.5开发软件的依赖关系

More Related