




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 WINDOWS CE开发手册基于ARM9AT920芯片S3C2410文档编号:项目参考编号:支持单位:香港理工大学ISM研究院清华大学电工电子技术中心版权所有严禁翻印 2007年3月第1章Windows CE简介 (41.1智能设备与微软嵌入式系统 (41.2 Windows CE (4第2章 Windows CE开发平台的构建与配置 (72.1 目标设备平台介绍 (72.2 操作系统开发平台 (82.3应用程序开发平台 (12第3章Windows CE操作系统创建 (163.1创建操作系统平台设计 (163.2 目标平台的下载 (22第4章 WINDOWS CE驱动程序开发 (314.1
2、驱动设备的分类 (314.2 流接口设备驱动 (32第5章 WINDOWS CE应用程序开发 (415.1 本地应用程序与可托管应用程序 (415.2本地应用程序开发 (425.3 智能设备托管应用程序的开发 (46附录:光盘内容清单 (49本页特意留作空白页IDETCO大学计划方案第1章Windows CE简介1.1 智能设备与微软嵌入式系统随着计算机技术以及信息技术不断成熟与发展,人们的消费需求和消费心理都发生了巨大变化,人们已经不再一味追求PC的大容量和高速度而是转而设法将计算机应用与日常生活的方方面面,追求个性化的产品和消费.近几年以来一软硬件组成为显著特征,以消费电子类产品为主导的智
3、能设备以超乎人们想象的速度获得了前所未有的发展,在这个过程中,微软公司也是首当其冲.一台智能设备从本质上讲仍然是一台计算机,因为它具有一般计算机的典型特征,它仍然由软件和硬件组成,在智能设备中既有CPU,存储器,系统时钟和外部接口等,也有OS和应用软件.和一般的通用计算机相比,它更像一台专用的计算机,是看不见的计算机.智能设备也叫嵌入式智能设备,这是相对于一般的PC而言的,每台智能设备都是一个典型的嵌入式软硬件系统,智能设备的开发也就是对嵌入式软硬件进行裁剪,定制和开发的过程.就嵌入式硬件来说,其处理器有8位,16位和32位等不同类型,其架构也有X86,ARM,MIPS,SHx等不同类型.就嵌
4、入式系统来讲,目前市场上主流的有windows CE,Vxworks,Linux,ONX,pSOS等.目前32位微处理器硬件和实时多任务OS软件相结合是嵌入式系统发展的主流.4.2版本.1.2 Windows CEMicrosoft Windows CE是一个开放的,可裁剪的,32位的实时嵌入式操作系统.和其他桌面版窗口操作系统相比,他具有可靠性好,实时行高,内核体积 小的特点,所以被广泛用于各种嵌入式智能设备的开发,是当今应用最多,增长最快的嵌入式操作系统.Windows CE的设计目标如下:1. 模块化和小内存占用Windows CE是为小型设备如掌上电脑和嵌入式系统设计的,由于此类设备通
5、常只有有限的资源,所以Windows CE必须能适应这种限制.典型的wicne设备只有8-32M的ROM,而Windows CE的最小内核只有500KB.Windows CE被设计成高度模块化的一种操作系统,以适应不同类型的智能设备对于操作系统映象大小不同的要求.Windows CE被分成一些不同的模块,其中内核,图形窗口子事件,文件系统和通信模块是4个主要模块.2.多种有线与无线连接支持Windows CE在很大程度上是为移动手持设备而设计的,所以Windows CE提供了丰富而灵活的无线通信支持和有线网络支持.无线支持包括红外,蓝牙和802.1x,有线支持包括串并口通信,以太网通信,拨号网
6、络等,另外还支持GPS,GPRS,ISDN,ADSL,CDMA等多种通信方式,同时Windows CE还允许远程授权,认证,管理和更新Windows CE设备上应用程序或服务.3.强大的实时性能力Windows CE被设计成一个RTOS,它强大的中断和线程调度机制和内核操作系统服务保证它为一个硬实时操作系统,能满足不同设备对于时间关键性任务的时间和性能的要求.4.丰富的多媒体和多语言支持Windows CE允许创建基于.NET的智能设备个性化程序,并提供最新的多媒体的支持.从Windows CE 4.0开始,完全支持创建中文的操作系统,并提供微软拼音,双拼等中文输入法.5.强大的开发工具支持
7、第2章 Windows CE开发平台的构建与配置2.1 目标设备平台介绍通过下图我们可以大概了解到这块芯片提供那些资源.例如I2C,I2S,UART等. 这些资源包括:一个LCD控制器,SDRAM控制器,3个通道的UART,4个通道的DMA,4个具有PWM功能的计时器和1个内部时钟,8通道的10位ADC,触摸屏接口,I2S总线接口,2个USB主机接口,1个USB设备接口,2个SPI接口,SD接口和MMC卡接口,看门狗计数器,117位通用IO口和24位外部中断源. 203M的时钟频率使其运行Windows CE十分流畅.2.2 操作系统开发平台Platform Builder是用于创建基于Win
8、dows CE的嵌入式操作系统设计的一个集成开发环境(IDE,它集成了进行设计,产生,构建,测试和调试Windows CE操作系统设计所需要的所有开发工具. Platform Builder IDE主要包括以下内容.1 Catalog窗口该窗口是Platform Builder的一个重要工作窗口, Platform Builder将Windows CE提供的大量组件和第三方提供的组件按章组件特性组成一个树状的结构放置到这个窗口.该窗口的每一个组件都可以添加到自己定制的操作系统设计中.2 Platform Builder的用户接口Platform Builder的用户接口主要有上下文敏感的菜单条
9、,快捷菜单,可编辑的属性页,上下文敏感的工具条,上下文敏感的快捷键,工具条按钮和命令的工具提示功能,上下文敏感的帮助文档以及可定制的工具条和菜单组成.3 Platform Builder的向导向导主要帮助开发者进行系列化,标准化的操作. Platform Builder主要包括5种向导.(1 BSP向导用于创建一个新的BSP,克隆一个已有的BSP或者修改一个已有的BSP,以使BSP能被第三方用户或者硬件接受.(2新平台向导用于创建一个包含操作系统设计及相关工程和文件的工作空间,以便创建一个新的操作系统运行是映象.(3新工程向导用于帮助开发者创建一个C+工程,包括可执行程序,动态链接库,静态库和
10、传输层等.(4导出向导 用于将第三方的分类项目导出为一个.msi 安装文件,以便其他平台开发者能够将它安装到另一台开发工作站上的Platform Builder中,并在Catalog中使用.(5SDK向导用于帮助平台开发者创建,配置和定制一个基于操作系统设计的SDK(软件开发工具包,在这个SDK被分发给应用程序开发者后,程序员就可以脱离Platform Builder这个环境为定制的系统开发应用程序了.4 工作空间(workspace当创建一个操作系统设计时,也就创建了一个工作空间.一个工作空间可以包含多个工程,但只能包含一个操作系统设计.5 工程当使用New Project Wizard创建
11、也个新的workspace类型的C+工程时,将会产生一个名为.pbpxml的工程定义文件, Platform Builder编译此工程的所有信息都包含在这个文件里面.6文本编辑器文本编辑器用来管理,编辑和打印所有基于文本的文件. (2单击Install,显示如下图的Welcome界面 (3单击next显示授权协议界面,选择接受授权协议,单击”next”,显示客户信息界面,同时输入产品密钥,如下: (4单击Next选择安装类型,如下图 (5单击next,选择目标文件夹如下图: (6单击next选择要安装的CPU类型,如下图 (6单击next,接受协议,准备安装.如下图 (7单击Next,开始安装
12、2.3应用程序开发平台c+,c#,ASP.net语言开发Windows CE应用程序. (1在eVC目录下双击setup,如下图: (2单击next,系统显示用户授权许可,选择接受许可,如下图: (3单击next,添加产品序列号和用户标识(ID,如下图: (4单击next,显示产品安装选择界面,选择所有产品安装选项 (5单击next,开始进入安装程序. (1双击文件夹下的setup图标,进入Visual Studio .NET 2003的安装程序,如下图: (2单击Visual Studio .NET 系统必备 ,系统显示如下: (2单击立即更新,安装系统必备文件,然后针对提示进行选择,这个安
13、装过程很简单,就不多介绍了. 第3章Windows CE操作系统创建3.1创建操作系统平台设计首先安装适合我们硬件平台的BSP,按照以下步骤.(1在Windows CE420PLATFORM目录下创建一个名为”SMDK2410”的文件夹,如果已经有了该文件夹,将其改为备份。如下图: (2将光盘中的SMDK2410中的内容拷贝到SMDK文件夹下,去掉该文件夹的只读属性.(3将SMDK2410_for_PublicoakdriversNETCARDcs8900r目录拷贝到WINDOWS CE420PUBLICCOMMONOAKDRIVERSNETCARD目录下. (4拷贝WINDOWS CE420
14、PLATFORMSMDK2410_for_PublicCESYSGEN 目录下的makefile到WINDOWS CE420PUBLICCOMMCONCESYSGEN目录下.(5打开 Platform Builder 4.2,选择file菜单下的Manage Catalog Features如下图 (6在弹出的对话框中选择”smdk2410.cec”,点remove(7点import,导入platformsmdk240smdk420.cec文件,在cotalog的BSP下将看到安装好的BSP,如下图: 这样,我们的BSP就添加成功了.然后我们定制一个自己的Windows CE操作系统.步骤如下
15、:(1在file菜单下选择”New Platform”,弹出New Platform Wizard-step1,选择next. (2在New Platform Wizard-step2中选择SAMSUNG SMDK2410:ARM4 BSP 按next (3选择”Available configurations”中的Mobile Handheld 并输入Platform name ,点next继续. (4在New Platform Wizard-step4中选择必要的配置,点next. (5 New Platform Wizard-step5中选择所需的网络配置.点next,继续 (6最后点f
16、inish,结束新平台建立.(7在菜单Platform中点setting,在设置对话框Build Option中如图进行配置 (8加入USB鼠标特性支持,如图,点开Catalog->Core OS->Display based devices->Core OS Service->USB Host Support ->USB Human Input Device(HIDClass Driver点右键选择”add to platform”在选择其子项”USB HID keyboard and Mouse”同样右键”add to platform”. (9加入USB移动
17、存储设备支持,如下图: (10加入网络驱动,点击打开Catalog->BSPs->Samsung SMDK2410:ARMV4->Device Driver->Networking->Local Area Networking(LAN devices->CS8900,点右键加入”add to platform”. (11更改适合自己的网络环境,如下图,通过修改编辑platform.reg (12点击Build菜单中Build platform开始编译.至此我们完成了基于S3C2410的操作系统平台的搭建.接下来我们将把这个平台产生的镜像下载到我们的硬件开发板
18、中.3.2 目标平台的下载1.将Nboot和Eboot烧录到Nandflash/SMC中,(1安装光盘资料中的开发工具下面的”YFSJF” (2使用JTAG把PC机与目标板连接.(3运行YFSJF程序,选择WINDOWS CE资源下image目录下的Nboot_Debug.bin文件,按下图的配置进行烧写. (4选择文件为上面我们生成平台目录下的EBOOT . NB0文件,目录为X:WINDOWSCE420PUBLICSBC2410RelDirSAMSUNG_SMDK2140_ARMV4IRelease目录下的Eboot.nb0,设置目标块为2,如下图所示: (5烧录完毕后,关闭开发板电源,拔
19、出JTAG.(6用串口线连接PC机和目标平台,在PC机端运行DNW软件,点击”Serial Port”菜单下的”Connect”,打开开发板电源,在DNW窗口可以看到如下图信息: 至此Nboot和Eboot烧录完毕2.将Image文件通过Ethernet下载到开发板上运行(1接上面的操作,在DNW窗口显示中的参数设置如下: 第2项:Download image to nandflash or adram,我们选择nandflash第3项:对nandflash进行低级格式化(2在PC机上打开Platform Builder 4.2,打开我们建立的工程,如下图 (3在DNW窗口下按4,开始下载,如
20、下图: (4在Platform Builder4.2窗口下,选择”Target菜单下的”Configure Remote Connection”,如下图 (5在download下点Configure按钮,如下图,连接好后将出现如下图的效果: 将Kernel也如此设置.(6选择”Target”菜单下的”Download/Initialize”,如下图 这是在PC机端将弹出下载进度,如下图 同时在DNW将会回传下载信息当出现如下信息时,接上JTAG,在PC机上运行YFSJF程序,选择Nboot_Release.bin文件,目标块为0,烧录到Nandflash中.以后只要打开开发板电源,Window
21、s CE就会自动运行了. 运行效果如下图,这是通过同步软件截取的目标板上的情况 3下面我们就讲一下微软提供的同步软件的安装.在光盘开发工具中找到ActiveSync文件夹,双击setup安装.安装后要安装USB驱动,驱动位置在SMDK2410DRIVERSUSBFUNCTION目录下.然后我们启动ActiveSync,进行连接设置,如果连接上将有如下显示. IDETCO大学计划方案 通过USB我们可以像访问U盘一样访问目标设备,如下图 注意: 由于pb中存在一个小bug,导致Windows CE的中文界面中会有两个“启动”,一个是中文的启动,一个是“startup”。usbconnt在中文的启
22、动中,而系统默认从startup启动。所以需要在WINDOWSCE420PUBLICCOMMONOAKFILESINTLTRNS0804的common.str中修改“WindowsStartUp”为“Windows启动”。然后再编译工程。如果不改动这个,直接编译,编译出来的NK.bin文件下载以后,无法使用ActiveSysc自动和PC同步!至此我们已经基本把定制Windows CE系统介绍完了. IDETCO大学计划方案 第4章 WINDOWS CE驱动程序开发驱动程序开发是BSP开发的主要内容.Windows CE为智能设备准备了大量的驱动程序,为了更快的掌握Windows CE驱动的开发
23、,这需要读者自己亲自分析大量的微软提供的不同类型设备驱动程序的源代码.4.1 驱动设备的分类1内建驱动程序内建驱动程序有时也被称为本地设备驱动程序.他们被静态的链接到GWES,也就是说这些驱动不是作为一个单独的DLL存在的.指示LED驱动程序就是一个内建驱动程序的一个例子,指示LED驱动程序作为nleddrv.lib被链接到GWES.2 可安装的驱动程序在微软提供的Windows CE例驱动程序中,按驱动程序的结构,有两种类型的驱动程序,分层的驱动程序和不分层的驱动程序.常MDD层由微软提供.开发者一般只需要编写特定于硬件平台的PDD层代码,而直接使用MDD层公用代码.2 不分层的驱动程序,驱
24、动的分层与不分层都是相对的,任何分层的驱动都可以使用不分层驱动来代替.如果时间或者性能是一个关键因素,那么不分层驱动是最好的选择.但是,不论分层的还是不分层的,都可以基于微软提供的例驱动代码进行开发,这将大大加速开发的进程并简化开发的难度.开发者要尽量避免从第一行程序写起. 按照驱动程序导出接口不同,驱动程序可以分为本地驱动程序与流接口驱动程序.一些类型的设备,如键盘和显示,对操作系统有一个定制的接口,由于他们使用的接口是Windows CE特定的,所以这些驱动被成为本地设备驱动.还有一种驱动是流接口设备驱动,不管驱动程序控制的设备是什么类型,凡是导出流接口函数的驱动都是流接口驱动.所以流接口
25、驱动都被使用相同的接口并导出一组相同的函数-流接口函数.流接口函数被设计来与通常的文件系统API紧密匹配,即由流接口驱动管理的设备向应用程序表现为一个文件系统,应用程序通过对文件系统的特殊文件进行操作从而完成对设备的操作.4.2 流接口设备驱动流接口设备驱动是不管驱动程序控制的类型都导出流接口函数的驱动.流接口适合与任何逻辑上被认为做为数据源或数据存储的I/O设备,即任何一产生或消耗数据为主要功能的外围设备驱动都可以选择导出流接口,如串口设备驱动就是一个典型的流接口设备驱动.流接口函数本身是为更紧密地匹配通常的文件系统应用程序编程接口(如ReadFile,WriteFile,IOControl
26、等而设计的,由流接口管理设备通过文件系统导出给应用程序,应用程序通过打开文件系统的特殊文件与设备驱动进行交互.下面我们对流接口函数进行介绍.标准的流接口是如下的一组函数,我们先来看一下这组函数的基本外观:1、HANDLE XXX_Init(LPCTSTR pContext,LPCVOID lpvBusContext;这个函数是在设备管理程序通过ActiveDeviceEx(函数激活设备时被系统调用的。它的主要功能是初始化驱动程序中用到的资源,对I/O地址空间和内存进行映射等。2、BOOL XXX_Deinit(DWORD hDeviceContext;这个函数是在设备管理程序通过Deactiv
27、ateDevice(函数卸载设备时被系统调用的,它的主要功能是回收驱动程序中用到的资源。3、DWORD XXX_Open(DWORD hDeviceContext,DWORDAccessCode,DWORD ShareMode; 这个函数是在应用程序通过CreateFile(函数打开设备时调用的。4、BOOL XXX_Close(DWORD hOpenContext;这个函数是在应用程序通过CloseHandle(函数关闭句柄时调用的。5、DWORD XXX_Read(DWORD hOpenContext,LPVOID pBuffer,DWORDCount;这个函数是在应用程序通过ReadFi
28、le(函数读取设备时调用的。6、DWORD XXX_Write(DWORD hOpenContext,LPCVOIDpBuffer,DWORD Count;这个函数是在应用程序通过WriteFile(函数向设备写入数据时调用的。7、DWORD XXX_IOControl(DWORD hOpenContext,DWORDdwCode,PBYTE pBufIn,DWORD dwLenIn,PBYTE pBufOut,DWORDdwLenOut,PDWORD pdwActualOut;这个函数是在应用程序通过DeviceIOControl(函数向设备发送控制字时调用的。8、void XXX_Powe
29、rUp(DWORD hDeviceContext;这个函数是在向设备恢复供电的时候调用的。9、void XXX_PowerDown(DWORD hDeviceContext;这个函数是在设备断电的时候调用的。上述函数中的XXX部分是在注册表中注册此设备驱动程序的时候Perfix注册表项的值。例如串口,则用Com,并口则用LTP等等。只要一个DLL中针对特定设备实现了上述接口并且正确在注册表中注册,那么就可以在程序中通过那些文件API函数来访问此设备。下面我们就一起在PB4.2中按上述接口模拟一个设备。设备的名字就叫做TTT吧。运行PB4.2,打开上次做的平台,在文件菜单中执行"New
30、 Project or File"命令,新建一个"WCE Dynamic-Link Library"项目,输入项目名字为"Test"。在向导的第一步中输入必要的信息(此处不输也可以,这些信息可供向导自动生成一个README.TXT文件,不过还是写上好,以免以后忘了,在下一步中选择一个空项目,完成。在新的源程序文件中输入以下程序: / test.cpp : Defines the entry point for the DLL application./#include "stdafx.h"#include "mem
31、ory.h"#include "windows.h"HANDLE* hDevice;#define BUFSIZE 256WCHAR bufferBUFSIZE;BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReservedreturn TRUE;HANDLE TTT_Init(LPCTSTR pContext,LPCVOID lpvBusContext hDevice=(HANDLE*LocalAlloc(LPTR,sizeof(HANDLE; memset(buf
32、fer,0,sizeof(WCHAR*BUFSIZE;return hDevice;BOOL TTT_Deinit(DWORD hDeviceContextLocalFree(hDevice;return TRUE; DWORD TTT_Open(DWORD hDeviceContext,DWORD AccessCode,DWORD ShareModeif (!hDeviceContextreturn FALSE;return TRUE;BOOL TTT_Close(DWORD hOpenContextif (!hOpenContextreturn FALSE;return TRUE;DWOR
33、D TTT_Read(DWORD hOpenContext,LPVOID pBuffer,DWORD Count DWORD dwret=min(BUFSIZE,Count;wcsncpy(LPWSTRpBuffer,buffer,dwret;return dwret;DWORD TTT_Write(DWORD hOpenContext,LPCVOID pBuffer,DWORD Count DWORD dwret=min(BUFSIZE,Count;wcsncpy(buffer,(LPWSTRpBuffer,dwret;return dwret;DWORD TTT_IOControl(DWO
34、RD hOpenContext,DWORD dwCode,PBYTE pBufIn, DWORD dwLenIn,PBYTE pBufOut,DWORD dwLenOut,PDWORD pdwActualOut return TRUE;void TTT_PowerUp(DWORD hDeviceContextreturn;void TTT_PowerDown(DWORD hDeviceContextreturn;编译,然后编译该test文件夹下的test.def文件,将这些实现的接口函数导出: LIBRARY TEST.DLLEXPORTSTTT_InitTTT_DeinitTTT_OpenT
35、TT_CloseTTT_PowerUpTTT_PowerDownTTT_IOControlTTT_ReadTTT_Write 同时编辑此文件夹下的test.reg文件,加入必要的注册表项:HKEY_LOCAL_MACHINEDriversBuiltIntest"DeviceArrayIndex"=dword:0"Prefix"="TTT""Dll"="test.Dll""Order"=dword:20好了,一个TTT设备的流接口驱动就写好了,在源程序文件夹中的DEF文件,RE
36、G文件,BIB文件,DB文件,DAT文件和编译链接时需要的BAT文件都被PB生成好了,开发人员只要作些必要的修改即可以,非常方便。在BIB文件中添加项目,将所用到的文件加入BIN文件(一般放在Platform.bib。MyDev.dll $(_FLATRELEASEDIRMyDev.dll NK SH注:SampleDev为任意与其它项目不重名的字符串.每个函数名的前缀XXX可以是任意大写的字符串,只要保证与注册表中Prefix后面的值相同就行。编译程序现在,已经知道了需要实现哪些东西,一定想知道如何去实现它。一个最直接的方法就是在platform/BSP/drivers 下新建一个目录,然后
37、在drivers目录中的dirs文件中加入以你刚新建的目录名。在刚新建的目录下,新建你的C源代码文件,在其中实现上面所述的函数,及其功能。新建名称分别为sources, makefile, mydev.def的文件。其内容如下:makefile: 只需要这样一行 !INCLUDE $(_MAKEENVROOTmakefile.defSources:这个文件很重要,内容也多,最基本的一个文件该有如下内容。TARGETNAME= MyDev(指定要生成的动态库的名称TARGETTYPE=DYNLINK(指定要生成的是一个动态库(下面两项指定需要与哪些动态库链接,一般要第一项就足够了TARGETLI
38、BS=$(_COMMONSDKROOTlib$(_CPUINDPATHcoredll.lib SOURCELIBS= $(_COMMONOAKROOTlib$(_CPUINDPATHceddk.libDEFFILE=MyDev.def (指定def文件DLLENTRY=DllEntry(指定动态库的入口函数SOURCES=(请在这写上你所有源文件的名字,它们将会被编译接下来,为了测试我们的驱动程序是否可以正常工作,还需要写一个测试程序,再次为平台新建一个WCE应用程序项目TestTTT,写入如下代码并编译为EXE文件:#include "stdafx.h"#include
39、"windows.h"int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow/ TODO: Place code here.HANDLE handle=CreateFile(_T("TTT1:",GENERIC_READ|GENERIC_WRITE,0, NULL,OPEN_EXISTING,0,NULL; ASSERT(handle;DWORD ret=0;TCHAR* pstr=_T("This is a TES
40、T of TTT Driver"WriteFile(handle,pstr,(_tcslen(pstr+1*sizeof(TCHAR,&ret,NULL;TCHAR ReadStr256;memset(ReadStr,0,sizeof(TCHAR*256;ret=0;ReadFile(handle,ReadStr,sizeof(ReadStr,&ret,NULL;MessageBox(NULL,ReadStr,_T("Test",MB_OK;CloseHandle(handle;return 0; 这只是一个简单的演示程序,大家可以参考着完成自己的
41、驱动程序,如简单的控制IO口的驱动程序等等.驱动程序就介绍到这里,驱动的编写不是一朝一夕的事情,需要不断的努力和付出,这样才能成为所谓的高手,另外一定要仔细阅读PB的练级帮助文档,该文档基本上可以找到你所需要的所有东西. 第5章 WINDOWS CE应用程序开发5.1 本地应用程序与可托管应用程序Windows CE支持传统的本地应用程序和应用了Microsoft.NET技术的托管应用程序.为了开发本地应用程序,需要使用eVC+4.0开发工具, eVC+将C+代码直接编译为CPU指令,它使用win32应用程序编程接口(win32API来访问Windows CE 功能,同时它还是用MFC或ATL
42、库帮助开发GUI和COM应用程序. 为了开发托管应用程序,需要使用VS.NET 2003开发工具,它集成了Microsoft .NET Compact Framework 1.0开发工具包,它编译出来的可执行代码为独立与CPU的中间语言代码,通常,托管应用程序不能直接访问win32API,在运行是,这些中间语言代码必须通过.NET Compact Framework库将它转换为机器语言代码才能访问操作系统功能.5.2本地应用程序开发Windows CE的本地应用程序开发主要涉及以下几个方面:1.从Platform Builder导出SDK2.安装SDK到eVC+3.Win32编程下面对这3个方面进行阐述当开发着使用eVC+工具编写Windows CE应用程序是,必须知道自己所开发的程序运行在什么样的硬件平台上,以及目标平台具有什么样的操作系统功能,否则,开发者开发的应用程序很可能不能在目标平台上运行.那么eVC+在编译是怎么知道目标平台的特性呢?答案就是通过Platform Builder想eVC+导出应用程序要运行平台的SDK.下面就说一下如何从Platform Builder中导出SDK,(1在platform菜单中选择Configure SDK,如下图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国家用智能路由器项目创业计划书
- 中国基于移动互联网的LBS应用项目创业计划书
- 中国康复医学项目创业计划书
- 2025电工材料购销合同范本
- 中国脑部扫描仪项目创业计划书
- 中国高性能路由器项目创业计划书
- 中国电子热离子管项目创业计划书
- 浙江饲料项目创业计划书
- 建设工程施工协议合同
- 乐昌保安考试题目及答案
- 咨询公司项目管理制度
- 水冷空调项目可行性研究报告
- 自动化控制技术试题及答案
- 网吧转让合同协议书范本
- 2025-2030中国船用滑动轴承座行业市场现状供需分析及投资评估规划分析研究报告
- 人员结构分析总结模版
- 2025年下半年四川烟草商业系统招聘166人易考易错模拟试题(共500题)试卷后附参考答案
- 农村三资管理
- 反诈防骗安全教育主题班会
- 【机床输出轴零件的加工工艺及夹具设计9500字(论文)】
- 电厂安规试题及答案
评论
0/150
提交评论