前天有客戶打算找一款8寸的工業(yè)平板電腦,并且最好是X86的。后來了解了他的應(yīng)用,原來很簡單,只是一些簡單的通信,以及幾個界面顯示。我說,用X86的電腦,成本高、維護麻煩,不是很浪費嗎?后來了解到他是不太熟悉WinCE應(yīng)用開發(fā)。昨天他到我公司,看過我們8寸的單板電腦演示后,表示完全滿足他的需求。接著,我為他演示了如何簡單的建立WinCE程序。他也表示沒有他想象中那么復雜。
其實Windows CE與Windows XP都出自微軟,同是“Windows”自然有很多相似之處。最重要的還是了解他們兩者的開發(fā)思想。
1、開發(fā)思想 為了好理解,下面將開發(fā)產(chǎn)品的電腦叫主機,被開發(fā)的設(shè)備叫從機。
PC程序開發(fā)的主機(開發(fā)的設(shè)備)和從機(被開發(fā)的設(shè)備)是一體的,即是本身;WinCE開發(fā)的主機是PC,從機是WinCE,兩者一般通過USB同步來通訊。要建立個概念。
這個是最重要的。有客戶直接問,是不是要在WinCE上裝一個VS2005,我并不覺得可笑。因為一些一直從事PC上應(yīng)用開發(fā)的工程師,不像我這些搞單片機過來的,他們沒有主機和從機的概念。建立這個概念,對從PC編程到WinCE開發(fā),有很大的幫助。PC編程不需要知道SDK、主從機的概念,編譯好程序就馬上可以在本機出來。正因為如此,他們就分不清主從機,哪個是在PC上運行,那個應(yīng)該是在WinCE上跑。
要清楚那些工具是用來開發(fā)設(shè)備程序的,那些工具是在設(shè)備上運行的。
例如,開發(fā)工具VS2005、SDK,這個對PC編程還是WinCE開發(fā)都是運行在主機上,用于設(shè)備開發(fā)的;編譯出來的程序,以及運行這程序相關(guān)的DLL(例如開發(fā)SQL相關(guān)的程序,需要在設(shè)備上安裝SQL、.net framework ,也就是一些DLL)都是屬于設(shè)備的。對于.net framework 或者SQL,PC 和 WinCE上都有自己的版本,如PC上是SQL2000,WinCE是SQLCE3.5,這個是為應(yīng)用程序的運行服務(wù)的,歸屬于從機的概念。開發(fā)WinCE的時候,主機會下載SQLCE、.Net到WinCE上使得開發(fā)的程序運行起開(當然可以在設(shè)備上直接安裝這些或已經(jīng)有了,就不用主機下載進去安裝了)。開發(fā)PC程序的時候,由于主從是一體,會看不到這個過程,導致大部分人忽略了,轉(zhuǎn)而對WinCE開發(fā)產(chǎn)生迷惑。
現(xiàn)在的VS2005自己本身也集成了這些服務(wù)運行于設(shè)備的程序(WinCE5.0、6.0的SQLCE .NetFramework,XP的.NetFramework),當然某些還是要安裝的,例如XP的SQL2000,但其目的主要是服務(wù)用戶開發(fā)的程序,屬于設(shè)備的。
SDK
SDK就是軟件開發(fā)工具包,當然是屬于主機上使用的東西。PC開發(fā)無論是VS2005,或者VC6.0,安裝的時候已經(jīng)包含了SDK包,因為PC的架構(gòu)(X86)系統(tǒng)是單一的。而WinCE設(shè)備的種類很多,無法做到單一,需要廠家提供。主機是調(diào)用這些SDK生成平臺相關(guān)的程序。然后下載到設(shè)備運行。開發(fā)示意如下圖所示。

2、開發(fā)工具
EVC4.0 SP4 & VC6.0。早期的WinCE C++開發(fā)工具使用EVC4.0,十分類似于PC上早期常用的VC6.0。如果有VC6.0編程基礎(chǔ)的,使用EVC新建一個工程,一步步實現(xiàn)功能。參考自帶的幫助,這個也不會太難。當然,如果將VC6.0的程序直接移植到WinCE上,這個相對困難些。最好還是自己重新建一個程序。WinCE的API編程,或者MFC,功能沒有Windows XP的大,有些函數(shù)、類也被裁減了。但這些在MSDN上都有說明。另外注意的是EVC 中字符串缺省的是UNICODE編碼(即一個字符wchar_t是2個字節(jié) typedef unsigned short wchar_t),而VC的是ASCII編碼(一個字符char 1個字節(jié))。 EVC現(xiàn)在微軟不推薦使用了,而且只能夠支持到WinCE5.0。我還是建議客戶使用VS2005。
VS2005。VS2005不再像EVC和VC一樣,分開版本分別針對平臺;而是把各種平臺集成到一個IDE上,統(tǒng)一管理。對智能設(shè)備,除了他本省自帶的SDK外,用戶還可以安裝其他的SDK,在創(chuàng)建程序的時候,選擇相應(yīng)的SDK即可。
本文來自:http://www.lyctr.com/shownews.asp?id=171
|