新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > WinCE應(yīng)用程序的開發(fā)

WinCE應(yīng)用程序的開發(fā)

作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

WinCE應(yīng)用程序的開發(fā)是WinCE開發(fā)中很重要的一個環(huán)節(jié)。本文將簡單介紹一些WinCE應(yīng)用程序開發(fā)的基本概念。

本文引用地址:http://2s4d.com/article/201609/304833.htm

先說開發(fā)工具,目前用得比較多的開發(fā)工具有EVC4(SP4)、VS2005、VS2008和Platform Builder。

其中Platform Builder主要是用來定制操作系統(tǒng)的,雖然也支持編寫應(yīng)用程序,但用得相對較少。記得沒錯的話,它還得先編譯系統(tǒng),才能新建應(yīng)用程序的工程。

VS2005和VS2008是微軟的集大成開發(fā)工具,PB6.0就是作為VS2005的插件安裝的(PB6.0目前應(yīng)該是不支持VS2008)。在VS2005中,你可以編譯WinCE6.0的操作系統(tǒng),也可以編譯設(shè)備上的應(yīng)用程序,省去了切換開發(fā)環(huán)境的麻煩。

EVC4(SP4)即嵌入式的VC,使用起來基本跟VC6.0一致。

WinCE應(yīng)用程序的開發(fā)相對桌面Windows應(yīng)用程序的開發(fā)有一些特點(diǎn),如下:

1. UNICODE編碼。WinCE中的應(yīng)用程序只能使用UNICODE編碼,桌面系統(tǒng)則支持UNICODE和ANSI碼。在移植PC端程序到設(shè)備上時需要注意這一點(diǎn)。

2.SDK。SDK即軟件開發(fā)支持包,軟件開發(fā)都少不了這個,但在WinCE應(yīng)用程序的開發(fā)中尤為重要。因?yàn)閃inCE系統(tǒng)本身是一個非標(biāo)的操作系統(tǒng),它的組件特性和可裁剪性決定了不同的系統(tǒng)支持的API是不同的。而桌面系統(tǒng)相對標(biāo)準(zhǔn),SDK的作用就弱化了。WinCE中的SDK由系統(tǒng)開發(fā)人員在編譯完系統(tǒng)后,通過Platform Builder導(dǎo)出。應(yīng)用程序的開發(fā)人員安裝此SDK,并編寫應(yīng)用程序,最終將應(yīng)用程序下載到目標(biāo)平臺上運(yùn)行測試。一般來說,SDK是應(yīng)用程序和操作系統(tǒng)之間的紐帶,但他們之間也并不是完全一一對應(yīng)的。譬如,在硬件和操作系統(tǒng)都沒調(diào)試好時,我們可以先用標(biāo)準(zhǔn)的SDK或者自己定制一個模擬器的SDK進(jìn)行應(yīng)用程序的開發(fā),等硬件和系統(tǒng)調(diào)試完成后再做聯(lián)調(diào)。應(yīng)用程序基于新的SDK編譯一下,甚至無需重新編譯也可運(yùn)行。當(dāng)然,一個應(yīng)用程序在別的設(shè)備上跑得很好,但到另外一個設(shè)備上卻不能工作也是很正常的。就像很多WM上的應(yīng)用程序在WinCE中不能跑一樣,雖然內(nèi)核相同,但系統(tǒng)不同,支持的API也是不同的。

最后說說開發(fā)語言,WinCE應(yīng)用程序的開發(fā)有Win32、MFC和Managed等幾種方式。對于開發(fā)者來說,選擇使用哪一個主要看效能,開發(fā)的效能和運(yùn)行的效能。根據(jù)能量守恒定律,開發(fā)效能和運(yùn)行效能應(yīng)該是一個此消彼長的關(guān)系。呵呵,跟能量守恒定律有關(guān)系么?勉強(qiáng)找個有力證據(jù)吧。托管代碼的開發(fā)效率很高,但執(zhí)行效率相對就低了。這在物資還不是極大豐富的嵌入式系統(tǒng)上,就顯得尤為突出,實(shí)時性也得不到保證。MFC是基于Window32的一個基礎(chǔ)類庫,封裝了很多Win32的API,方便開發(fā)者使用,但它也是有缺點(diǎn)的,似乎也沒再更新。Win32是這三者中最底層的一個,編譯出的程序小,沒有額外的包袱,運(yùn)行起來快,所以開發(fā)的難度自然就大了,代碼量也很大。我們在開發(fā)應(yīng)用程序時應(yīng)根據(jù)實(shí)際情況選擇更合適的。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉