WinCE应用程序开发.ppt
WindowsCE嵌入式系统嵌入式系统应用程序开发应用程序开发目录目录l l工具和技术工具和技术l l关于关于WindowsAPIl l常规的应用开发步骤常规的应用开发步骤l lWindowsMobile开发开发PocketPCPocketPCSmartphoneSmartphonel l模拟器概述模拟器概述目录目录l l工具和技术工具和技术l l常规的应用开发步骤常规的应用开发步骤l lWindowsMobile开发开发PocketPCPocketPCSmartphoneSmartphonel l模拟器概述模拟器概述什么是应用程序开发什么是应用程序开发l l在特定的在特定的WindowsCE平台下平台下l l使用该平台的编程接口实现各种功能使用该平台的编程接口实现各种功能l l平台的价值依赖于运行在其上的应用程序平台的价值依赖于运行在其上的应用程序WindowsCE应用程序开发工具应用程序开发工具l lPlatformBuilderl lEmbeddedVisualC+l lVisualStudio.NETl lEmbeddedVisualTools3.0(不提倡,被不提倡,被废弃废弃)PlatformBuilderPlatformBuilderl l支持支持WinCEApp/DLL/Lib,使用,使用Win32API开发开发l l应用程序将被链接到应用程序将被链接到OS内核中内核中一旦修改代码,必须再重新编译镜像一旦修改代码,必须再重新编译镜像一旦修改代码,必须再重新编译镜像一旦修改代码,必须再重新编译镜像l l容易调试容易调试OS内核内核,不容易调试应用程序不容易调试应用程序首先必须创建一个首先必须创建一个首先必须创建一个首先必须创建一个debugdebug版的版的版的版的OSOSEmbeddedVisualC+EmbeddedVisualC+l l支持支持WinCEApp/DLL/COM/LibusingWin32API,MFC,ATLandSTLl l与与VisualC+6.0具有相似的工程管理模式具有相似的工程管理模式和用户界面和用户界面l l易于调试和测试易于调试和测试l l必须安装相应的为特定平台开发的必须安装相应的为特定平台开发的SDK,从而开发相应的应用程序从而开发相应的应用程序VisualStudio.NETVisualStudio.NET2003l l开发基于开发基于.NETCompactFramework1.0和和.NETCompactFramework2.0的托管的托管代码,也可以使用代码,也可以使用C/C+语言来开发本机语言来开发本机代码代码l l可使用可使用C#,VB.NET.l lVS.NET具有完整的开发环境具有完整的开发环境l l目标平台上需要安装目标平台上需要安装.NETcompactframeworkl l易于调试和测试易于调试和测试EmbeddedVisualTools3.0l l包括包括EmbeddedVisualBasic3.0andEmbeddedVisualC+3.0l l用户界面类似用户界面类似VisualStudio6.0l l开发的程序开发的程序只能用于只能用于WindowsCEVersion3.0Native Application ModelManaged Application ModelVisual Studio.NET 2005C#or VB.NET.NET CompactFrameworkRuntimeC or C+Win32 ApplicationsCompiledPlatformBuilderWindows CE Operating SystemC or C+Win32 ApplicationseMbedded Visual C+应用程序开发选择应用程序开发选择相关技术相关技术-你有哪些选择你有哪些选择?l lWin32l lMicrosoftFoundationClass(MFC)l l.NETCompactFrameworkWin32l lWin32API是微软是微软32位位Windows平台的平台的应用程序编程接口。应用程序编程接口。l l使用使用Win32API编写的应用程序可在不同编写的应用程序可在不同的的Windows平台之间基本实现代码级的平台之间基本实现代码级的兼容。兼容。l l一个标准的一个标准的Win32源程序源程序=源代码文件源代码文件+资资源文件源文件WindowsAPI参考大全参考大全Win32APIWin32API作为作为作为作为 Microsoft32Microsoft32位平台(位平台(位平台(位平台(Windows9xWindows9x,WindowsNT3.1WindowsNT3.14.04.05.05.0,WindowsCEWindowsCE)的应用程序编程)的应用程序编程)的应用程序编程)的应用程序编程接口,它是构筑所有接口,它是构筑所有接口,它是构筑所有接口,它是构筑所有3232位位位位WindowsWindows平台的基石,所有在平台的基石,所有在平台的基石,所有在平台的基石,所有在WindowsWindows平台上运行的应用程序都可以调用这些函数。平台上运行的应用程序都可以调用这些函数。平台上运行的应用程序都可以调用这些函数。平台上运行的应用程序都可以调用这些函数。一般来说一般来说一般来说一般来说WindwosWindwosAPIAPI包括函数、结构、消息、宏及接口包括函数、结构、消息、宏及接口包括函数、结构、消息、宏及接口包括函数、结构、消息、宏及接口等。等。等。等。l l从事从事从事从事WindowsWindows应用程序开发,离不开对应用程序开发,离不开对应用程序开发,离不开对应用程序开发,离不开对Win32APIWin32API函数的函数的函数的函数的调用。只有充分理解和利用调用。只有充分理解和利用调用。只有充分理解和利用调用。只有充分理解和利用APIAPI函数,才能深入到函数,才能深入到函数,才能深入到函数,才能深入到WindowsWindows的内部,充分挖掘系统提供的强大功能和灵活性。的内部,充分挖掘系统提供的强大功能和灵活性。的内部,充分挖掘系统提供的强大功能和灵活性。的内部,充分挖掘系统提供的强大功能和灵活性。l l标准标准标准标准Win32APIWin32API函数可分以下几类:窗口管理、窗口通用控函数可分以下几类:窗口管理、窗口通用控函数可分以下几类:窗口管理、窗口通用控函数可分以下几类:窗口管理、窗口通用控制、制、制、制、ShellShell特性、图形设备接口、系统服务、国际特性以及特性、图形设备接口、系统服务、国际特性以及特性、图形设备接口、系统服务、国际特性以及特性、图形设备接口、系统服务、国际特性以及网络服务七大类,超过网络服务七大类,超过网络服务七大类,超过网络服务七大类,超过700700个个个个。可以通过。可以通过。可以通过。可以通过了解了解了解了解APIAPI的用法。的用法。的用法。的用法。l l所有函数均附有功能说明、参数说明、返回值说明、备注以所有函数均附有功能说明、参数说明、返回值说明、备注以所有函数均附有功能说明、参数说明、返回值说明、备注以所有函数均附有功能说明、参数说明、返回值说明、备注以及引用说明,在及引用说明,在及引用说明,在及引用说明,在MSDNMSDN上也提供了调用上也提供了调用上也提供了调用上也提供了调用APIAPI的示例代码。的示例代码。的示例代码。的示例代码。按照通常的划分标准,按照通常的划分标准,按照通常的划分标准,按照通常的划分标准,WIN32APIWIN32API函数分为七大类:函数分为七大类:函数分为七大类:函数分为七大类:l l1 1、窗口管理类:这类、窗口管理类:这类、窗口管理类:这类、窗口管理类:这类APIAPI函数向应用程序提供了创建和管理函数向应用程序提供了创建和管理函数向应用程序提供了创建和管理函数向应用程序提供了创建和管理用户界面的方法,可以使用它们来做程序的界面。用户界面的方法,可以使用它们来做程序的界面。用户界面的方法,可以使用它们来做程序的界面。用户界面的方法,可以使用它们来做程序的界面。l l2 2、窗口通用控制类:系统、窗口通用控制类:系统、窗口通用控制类:系统、窗口通用控制类:系统SHELLSHELL提供了一些控制,使用这提供了一些控制,使用这提供了一些控制,使用这提供了一些控制,使用这些控制可以使窗口具有与众不同的外观,通用控制是由通用些控制可以使窗口具有与众不同的外观,通用控制是由通用些控制可以使窗口具有与众不同的外观,通用控制是由通用些控制可以使窗口具有与众不同的外观,通用控制是由通用控制库控制库控制库控制库COMCTL32.DLLCOMCTL32.DLL提供的。提供的。提供的。提供的。l l3 3、SHELLSHELL特性类:应用程序可以使用它们来增强系统特性类:应用程序可以使用它们来增强系统特性类:应用程序可以使用它们来增强系统特性类:应用程序可以使用它们来增强系统SHELLSHELL各方面的功能。各方面的功能。各方面的功能。各方面的功能。l l4 4、图形设备接口、图形设备接口、图形设备接口、图形设备接口(GDI)(GDI):提供绘图、图形处理、使用显示设:提供绘图、图形处理、使用显示设:提供绘图、图形处理、使用显示设:提供绘图、图形处理、使用显示设备等一系列的备等一系列的备等一系列的备等一系列的APIAPI函数。函数。函数。函数。l l5 5、系统服务类:为计算机提供了访问计算机资源以及底层操、系统服务类:为计算机提供了访问计算机资源以及底层操、系统服务类:为计算机提供了访问计算机资源以及底层操、系统服务类:为计算机提供了访问计算机资源以及底层操作的手段。作的手段。作的手段。作的手段。l l6 6、国际特性类:有助于编写国际化的应用程序,提供、国际特性类:有助于编写国际化的应用程序,提供、国际特性类:有助于编写国际化的应用程序,提供、国际特性类:有助于编写国际化的应用程序,提供UnicodeUnicode字符集和多语种支持。字符集和多语种支持。字符集和多语种支持。字符集和多语种支持。l l7 7、网络服务类:允许网络上的不同计算机之间的不同应用程、网络服务类:允许网络上的不同计算机之间的不同应用程、网络服务类:允许网络上的不同计算机之间的不同应用程、网络服务类:允许网络上的不同计算机之间的不同应用程序之间进行通讯,用于在各计算机上创建和管理共享资源的序之间进行通讯,用于在各计算机上创建和管理共享资源的序之间进行通讯,用于在各计算机上创建和管理共享资源的序之间进行通讯,用于在各计算机上创建和管理共享资源的连接。连接。连接。连接。WindowsAPIWindowsAPI函数统计:函数统计:函数统计:函数统计:控件与消息函数:共控件与消息函数:共91个函数;个函数;硬件与系统函数:共硬件与系统函数:共98个函数;个函数;设备场景函数:共设备场景函数:共73个函数;个函数;绘图函数:共绘图函数:共105个函数;个函数;位图、图标和光栅运算函数:共位图、图标和光栅运算函数:共39个函数;个函数;菜单函数:共菜单函数:共37个函数;个函数;文本和字体函数:共文本和字体函数:共41个函数;个函数;打印函数:共打印函数:共66个函数;个函数;文件处理函数:共文件处理函数:共118个函数;个函数;进程和线程函数:共进程和线程函数:共40个函数;个函数;Windows消息函数:共消息函数:共11个函数;个函数;网络函数:共网络函数:共14个函数。个函数。MFCl lMFCMFC是一个基于是一个基于是一个基于是一个基于C+C+语言的面向对象的程序设语言的面向对象的程序设语言的面向对象的程序设语言的面向对象的程序设计框架,它大大简化了计框架,它大大简化了计框架,它大大简化了计框架,它大大简化了WindowsWindows编程工作。编程工作。编程工作。编程工作。l l优点:优点:优点:优点:MFCMFC提供了一个标准化的结构,开发人员可从一个较高提供了一个标准化的结构,开发人员可从一个较高提供了一个标准化的结构,开发人员可从一个较高提供了一个标准化的结构,开发人员可从一个较高的起点编程,从而节省大量的时间的起点编程,从而节省大量的时间的起点编程,从而节省大量的时间的起点编程,从而节省大量的时间提供了大量的代码程序的控制主要由提供了大量的代码程序的控制主要由提供了大量的代码程序的控制主要由提供了大量的代码程序的控制主要由MFCMFC框架完成。框架完成。框架完成。框架完成。l l与桌面与桌面与桌面与桌面MFCMFC的异同:的异同:的异同:的异同:WindowsCEWindowsCE中的中的中的中的MFCMFC对对对对桌面的桌面的桌面的桌面的MFCMFC做了一定的改动。增加了一些做了一定的改动。增加了一些做了一定的改动。增加了一些做了一定的改动。增加了一些WindowsCEWindowsCE特有的类,并且删除了对其他一特有的类,并且删除了对其他一特有的类,并且删除了对其他一特有的类,并且删除了对其他一些类的支持。些类的支持。些类的支持。些类的支持。ATLl lATL(ActiveXTemplateLibrary),它是,它是一套一套C+模板库。模板库。l l优点:优点:ATL能够快速地开发高效、简洁的能够快速地开发高效、简洁的代码,同时对代码,同时对COM组件的开发提供最大组件的开发提供最大限度的代码自动生成以及可视化支持。限度的代码自动生成以及可视化支持。.NETCompactFrameworkl l.NETCompactFramework是是.NET战略战略的重要部分,是为了在智能设备和嵌入式的重要部分,是为了在智能设备和嵌入式系统上运行托管代码而设计的。系统上运行托管代码而设计的。l l优点:简化了在智能设备上开发应用程序优点:简化了在智能设备上开发应用程序的过程。的过程。l l.NETCompactFramework两个组件:两个组件:公共语言运行时公共语言运行时公共语言运行时公共语言运行时.NETCompactFramework.NETCompactFramework类库类库类库类库相关技术相关技术-对大小的影响对大小的影响RuntimeRuntimeSize(Byte)Size(Byte)SizeIncrementSizeIncrementWin32Win329,805,2319,805,2310 0MFCMFC10,234,41510,234,415429,184429,184.NETcompact.NETcompactframeworkframework11,201,45911,201,4591,396,2281,396,228相关技术相关技术-开发和执行时间开发和执行时间Develop time performanceruntime performance.NETCompactframeworkMFCWin32API相关技术相关技术-结论结论 确定使用何种模式取决于你是否使用了Win32/MFC/C#/VB来开发程序,以及系统对操作系统镜像大小的要求,同时还要考虑其他因素,如应用程序开发速度以及系统的可靠性和兼容性等。目录目录l l工具和技术工具和技术l l常规的应用开发步骤常规的应用开发步骤l lWindowsMobile开发开发PocketPCPocketPCSmartphoneSmartphonel l模拟器概述模拟器概述常规的应用开发步骤常规的应用开发步骤:1.1.获得特定获得特定WindowsCE平台的平台的SDK.2.2.在在WindowsCE模拟器上编辑和调试代码模拟器上编辑和调试代码.3.3.在实际目标平台上,编译、运行程序在实际目标平台上,编译、运行程序,如果如果需要在设备上调试程序,可以通过需要在设备上调试程序,可以通过ActiveSync.第一步第一步:获得获得SDKl lSDK是用于在是用于在EVC和和VisualStudio下开发下开发应用程序的应用程序的l l获得获得SDK的两种方法的两种方法微软或第三方提供微软或第三方提供微软或第三方提供微软或第三方提供为自己的平台导出为自己的平台导出为自己的平台导出为自己的平台导出SDKSDKl lMicrosoft提供提供:StandardSDK(CommonSDKdev)StandardSDK(CommonSDKdev)WindowsMobileSDK(PocketPC)WindowsMobileSDK(PocketPC)PB下的下的SDK向导向导它是一个工具,用来产生和导出特定平台的它是一个工具,用来产生和导出特定平台的它是一个工具,用来产生和导出特定平台的它是一个工具,用来产生和导出特定平台的SDK(softwaredevelopmentkit)SDK(softwaredevelopmentkit)。被导出的被导出的被导出的被导出的SDKSDK由头文件、库文件、运行文件、平台的外延和由头文件、库文件、运行文件、平台的外延和由头文件、库文件、运行文件、平台的外延和由头文件、库文件、运行文件、平台的外延和帮助文件等组成。帮助文件等组成。帮助文件等组成。帮助文件等组成。应用程序开发人员可以利用这应用程序开发人员可以利用这应用程序开发人员可以利用这应用程序开发人员可以利用这个个个个SDKSDK去关联去关联去关联去关联MicrosoftembeddedVisualC+MicrosoftembeddedVisualC+4.04.0或或或或 MicrosoftVisualStudio.NETMicrosoftVisualStudio.NET,为特定平为特定平为特定平为特定平台开发应用。台开发应用。台开发应用。台开发应用。Platform-ConfigureSDKPlatform-ConfigureSDKPlatform-BuildSDKPlatform-BuildSDKPB、SDK和开发工具间的关系图和开发工具间的关系图提示提示:l l只在只在StandardSDK不能满足需求时才使用不能满足需求时才使用自己的导出自己的导出SDKl l用用Platform-ConfigureSDK来配置来配置SDKl l从控制面板中卸载从控制面板中卸载SDK第二步第二步:在模拟器下编程和调试在模拟器下编程和调试l l与与VisualC+6.0andVisualC+.NET类似类似l l取决于你的取决于你的WindowsProgramming知识知识平台管理器平台管理器(PlatformManager)它是一种通讯机制,用来管理宿主机和目标机之间的它是一种通讯机制,用来管理宿主机和目标机之间的通讯通讯。平台管理器允许宿主机上的开发工具以介质无关的平台管理器允许宿主机上的开发工具以介质无关的方式下载和连接目标机,方式下载和连接目标机,PB,EVC 4.0,PB,EVC 4.0,和和 Microsoft.NET Microsoft.NET Compact Framework Compact Framework 使用平台管理器下载诸如应用、使用平台管理器下载诸如应用、MS MS ActiveXActiveX控件、实时运行库和远程客户端工具等到目标机上。控件、实时运行库和远程客户端工具等到目标机上。WorkstationWorkstationCEDeviceCEDeviceTCP/IPKITLActiveSyncPlatformManagerPlatformManager远程工具远程工具l l你可以在宿主机上远程执行位于目标机上你可以在宿主机上远程执行位于目标机上的各种程序的各种程序l l不同的平台支持不同的远程工具不同的平台支持不同的远程工具l l位于位于PB和和EVC的的Tools菜单下菜单下l l开发者可以使用相应的接口和开发者可以使用相应的接口和APIs产生新产生新的远程工具的远程工具工具名称工具名称工具名称工具名称描述描述描述描述Remote Call ProfilerProvides profiling and analysis tools within a graphical user interface(GUI)that enable you to identify algorithmic bottlenecks in your applications.Remote File ViewerDisplays a hierarchical view of the file system on a target device.Remote Heap WalkerDisplays information about heap identifiers and flags for processes that are running on a target device.Remote Kernel TrackerDisplays a representation of the execution of the operating system(OS)on a target device.Remote Performance Monitor Measures the performance of a target device.Remote Process ViewerDisplays a list of processes and threads running on a target device.Remote Registry EditorDisplays the registry for a target device and enables you to manage the registry.Remote SpyDisplays a list of windows opened on a target device and messages generated by those windows.Remote System InformationDisplays system settings and properties for a target device.Remote Zoom-inDisplays an image from the screen of a target device.第三步第三步:在目标机上的运行和调试在目标机上的运行和调试l l根据目标机使用的根据目标机使用的CPU编译程序编译程序l l下载这个可执行文件到目标机上,然后运下载这个可执行文件到目标机上,然后运行该可知行文件行该可知行文件l l如果需要,使用如果需要,使用ActiveSync一步一步调试一步一步调试程序程序介绍介绍ActiveSync ActiveSync提供了一种支持,用来同步基于桌面Windows系统和基于CE.NET的便携式系统间的数据,它使用时间标记(stamps)和用户参数来跟踪两个系统间的数据改变,并传送相应的数据使得每个系统上的数据都是最新的,过时的或者冗余的数据会被删除。ActiveSync支持USB,红外,调制解调器,以及 Ethernet 等多种连接。ActiveSync 不支持CE设备间的数据同步,也不支持CE设备和服务器间的数据同步。使用使用ActiveSync调试调试l l安装安装ActiveSync(从从Microsoft网站获得网站获得)l l宿主机和目标机间提供至少以下一种连接宿主机和目标机间提供至少以下一种连接SerialUSBInfraredModemEthernetl l在在EVC下选择下选择“WindowsCEDevice”inEVC,调试运行在目标机上的程序调试运行在目标机上的程序目录目录l l工具和技术工具和技术l l常规的应用开发步骤常规的应用开发步骤l lWindowsMobile开发开发PocketPCPocketPCSmartphoneSmartphonel l模拟器概述模拟器概述介绍介绍WindowsMobilel lWindowsMobile是微软为是微软为PocketPCs和和Smartphones开发的软件平台开发的软件平台l lWindows移动延伸到微软的桌面系统和个移动延伸到微软的桌面系统和个人设备人设备Windows移动家族移动家族l lPocketPCl lSmartphonel lWindows汽车电子汽车电子SmartphonePocketPC为什么要开发为什么要开发Windows移动移动l l移动设备的市场越来越大移动设备的市场越来越大截止截止截止截止2008,2008,将会有超过将会有超过将会有超过将会有超过1010亿集成设备和亿集成设备和亿集成设备和亿集成设备和2 2亿的亿的亿的亿的移动手机用户移动手机用户移动手机用户移动手机用户(IDC,2004).(IDC,2004).l lPocketPC已经是已经是PDA市场的龙头,超过市场的龙头,超过Palml lSmartphone的快速发展的快速发展WindowsMobile的特点的特点l lMicrosoft提供了平台和提供了平台和SDKl lOEMs提供硬件提供硬件l l开发人员不能修改开发人员不能修改Platform特性特性Windows移动开发移动开发第一步第一步:下载和安装下载和安装SDKsl lURL:http:/http:/ lSDK能被用在能被用在EVC和和VisualStudio.NET2003上上Windows移动开发移动开发第二步第二步:开发、调试,运行开发、调试,运行l l参考前面的部分参考前面的部分应注意以下问题:应注意以下问题:l l1.只能使用只能使用Unicode字符集字符集a.ANSI是一个字节是一个字节,UNICODE是两个是两个字节字节b.声明:声明:CHAR-WCHARCHAR-WCHAR orTCHARorTCHARc.字符串函数:字符串函数:strlenstrlen()-()-wcslenwcslen()()strcmpstrcmp()-()-wcscmpwcscmp()()l l2.注意内存的使用注意内存的使用减少静态和全局变量的使用减少静态和全局变量的使用减少静态和全局变量的使用减少静态和全局变量的使用注意函数的递归注意函数的递归注意函数的递归注意函数的递归注意图片、视频文件的大小注意图片、视频文件的大小注意图片、视频文件的大小注意图片、视频文件的大小检查动态内存的分配情况检查动态内存的分配情况检查动态内存的分配情况检查动态内存的分配情况目录目录l l工具和技术工具和技术l l常规的应用开发步骤常规的应用开发步骤l lWindows移动开发移动开发PocketPCPocketPCSmartphoneSmartphonel l模拟器概述模拟器概述概述概述仿真器是一个用来模拟支持仿真器是一个用来模拟支持WindowsCE平台的硬件行为的工具。平台的硬件行为的工具。使用仿真器,你不需要硬件就可以设计、使用仿真器,你不需要硬件就可以设计、建立和测试一个建立和测试一个CE平台,它是用软件的形式平台,它是用软件的形式来实现对硬件平台的模拟。来实现对硬件平台的模拟。用软件模拟硬件。用软件模拟硬件。在模拟器上映射一个目录在模拟器上映射一个目录 使用模拟器,你可以将一个宿主机上的目录映射到仿真器上,就好像这个目录是安装在模拟器上的一个驱动设备。在模拟器的文件里,这个映射到模拟器上的目录现在处于根目录下,名字是Storage Card,模拟器一次只能映射一个目录。在模拟器上映射一个目录在模拟器上映射一个目录l映射一个目录到模拟器上 1.在模拟器上,运行一个Windows CE系统,它可以支持宿主机目录映射到模拟器上2.在模拟器窗口里,从模拟器菜单中选择文件夹共享 3.选择共享文件夹 4.选择一个目录共享,然后点OK l删除映射目录 1.在模拟器窗口里,从模拟器菜单中选择文件夹共享 2.在共享文件夹中选择 目录的路径 3.选择不共享 模拟器的限制模拟器的限制通讯和网络通讯和网络l l模拟器要运行在模拟器要运行在NAT连接上连接上l l拨号连接不支持模拟器拨号连接不支持模拟器l l不能建立不能建立RemoteDesktopProtocol(RDP)l l不支持不支持:IrDAIrDABluetoothBluetooth802.11802.11模拟器的限制模拟器的限制硬件硬件限制限制l lUniversalserialbus(USB)设备设备l lPCCard设备设备l l存储设备存储设备,包括包括CF卡和硬盘卡和硬盘l l文件系统驱动文件系统驱动,包括包括fileallocationtable(FAT),compactdisc(CD),anddigitalvideodisc(DVD)driversl lIEEE1394devices仿真器的限制仿真器的限制多媒体多媒体限制限制l l不支持对多媒体的硬件加速不支持对多媒体的硬件加速DirectXDirectXWindowsMediaWindowsMedial lDVD-VideoAPIl lDigitalrightsmanagement(DRM)l lVoiceoverIP(VoIP)l lMultiple-screensupport