如何从开发WinXP应用程序快速转到WinCE平台
[复制链接]
前天有客户打算找一款8寸的工业平板电脑,并且最好是X86的。后来了解了他的应用,原来很简单,只是一些简单的通信和几个界面显示。用X86的电脑,成本高、维护麻烦,不是很浪费吗?后来了解到他是不太熟悉WinCE应用开发。昨天他到我公司,看过我们8寸的单板电脑演示后,表示完全满足他的需求。接着,我为他演示了如何简单的建立WinCE程序。他也表示没有他想象中那么复杂。
其实Windows CE与Windows XP都出自微软,本来是一家自然有许多相似之处。最重要的还是了解他们两者的开发思想。
1、开发思想 为了好理解,我们将开发产品的电脑叫主机,被开发的设备叫从机。
主机PC和从机是一体的,两者一般通过建立USB同步通讯来实现连接。有客户直接问,是不是要在WinCE上装一个VS2005,我并不觉得可笑。因为一些一直从事PC上应用开发的工程师,不像我这些搞单片机过来的,他们没有主机和从机的概念。建立这个概念,对从PC编程到WinCE开发,有很大的帮助。PC编程不需要知道SDK、主从机的概念,编译好程序就马上可以在本机出来。正因为如此,他们就分不清主从机,哪个是在PC上运行,那个应该是在WinCE上跑。
要清楚哪些工具是用来开发设备程序的,哪些工具是在设备上运行的。
例如,开发工具VS2005、SDK,这个对PC编程还是WinCE开发都是运行在主机上,用于设备开发的;编译出来的程序,以及运行这程序相关的DLL(例如开发SQL相关的程序,需要在设备上安装SQL、.net framework ,也就是一些DLL)都是属于设备的。对于.net framework 或者SQL,PC 和WinCE上都有自己的版本,如PC上是SQL2000,WinCE是SQLCE3.5,这个是为应用程序的运行服务的,归属于从机的概念。开发WinCE的时候,主机会下载SQLCE、.Net到WinCE上使得开发的程序运行起开(当然可以在设备上直接安装这些或已经有了,就不用主机下载进去安装了)。开发PC程序的时候,由于主从是一体,会看不到这个过程,导致大部分人忽略了,转而对WinCE开发产生迷惑。
现在的VS2005自己本身也集成了这些服务运行于设备的程序(WinCE5.0、6.0的SQLCE .NetFramework,XP的.NetFramework),当然某些还是要安装的,例如XP的SQL2000,但其目的主要是服务用户开发的程序,属于设备的。
SDK
SDK就是软件开发工具包,当然是属于主机上使用的东西。PC开发无论是VS2005,或者VC6.0,安装的时候已经包含了SDK包,因为PC的架构(X86)系统是单一的。而WinCE设备的种类很多,无法做到单一,需要厂家提供。主机是调用这些SDK生成平台相关的程序。然后下载到设备运行。开发示意如下图所示。
2、开发工具
EVC4.0 SP4 & VC6.0。早期的WinCE C++开发工具使用EVC4.0,十分类似于PC上早期常用的VC6.0。如果有VC6.0编程基础的,使用EVC新建一个工程,一步步实现功能。参考自带的帮助,这个也不会太难。当然,如果将VC6.0的程序直接移植到WinCE上,这个相对困难些。最好还是自己重新建一个程序。WinCE的API编程,或者MFC,功能没有Windows XP的大,有些函数、类也被裁减了。但这些在MSDN上都有说明。另外注意的是EVC 中字符串缺省的是UNICODE编码(即一个字符wchar_t是2个字节typedef unsigned short wchar_t),而VC的是ASCII编码(一个字符char 1个字节)。 EVC现在微软不推荐使用了,而且只能够支持到WinCE5.0。我还是建议客户使用VS2005。
VS2005。VS2005不再像EVC和VC一样,分开版本分别针对平台;而是把各种平台集成到一个IDE上,统一管理。对智能设备,除了他本省自带的SDK外,用户还可以安装其他的SDK,在创建程序的时候,选择相应的SDK即可。
[ 本帖最后由 wqlcd_911 于 2012-6-21 16:38 编辑 ]
|