前天有客戶打算找一款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即可。 |