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