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

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