先說開發工具,目前用得比較多的開發工具有EVC4(SP4)、VS2005、VS2008和Platform Builder。 其中Platform Builder主要是用來定製作業系統的,雖然也支援編寫應用程式,但用得相對較少。記得沒錯的話,它還得先編譯系統,才能新建應用程式的工程。 VS2005和VS2008是微軟的集大成開發工具,PB6.0就是作為VS2005的外掛安裝的(PB6.0目前應該是不支援VS2008)。在VS2005中,你可以編譯WinCE6.0的作業系統,也可以編譯裝置上的應用程式,省去了切換開發環境的麻煩。 EVC4(SP4)即嵌入式的VC,使用起來基本跟VC6.0一致。 WinCE應用程式的開發相對桌面Windows應用程式的開發有一些特點,如下:
1. UNICODE編碼。WinCE中的應用程式只能使用UNICODE編碼,桌面系統則支援UNICODE和ANSI碼。在移植PC端程式到裝置上時需要注意這一點。
2.SDK。SDK即軟體開發支援包,軟體開發都少不了這個,但在WinCE應用程式的開發中尤為重要。因為WinCE系統本身是一個非標的作業系統,它的元件特性和可裁剪性決定了不同的系統支援的API是不同的。而桌面系統相對標準,SDK的作用就弱化了。WinCE中的SDK由系統開發人員在編譯完系統後,透過Platform Builder匯出。應用程式的開發人員安裝此SDK,並編寫應用程式,最終將應用程式下載到目標平臺上執行測試。一般來說,SDK是應用程式和作業系統之間的紐帶,但他們之間也並不是完全一一對應的。譬如,在硬體和作業系統都沒除錯好時,我們可以先用標準的SDK或者自己定製一個模擬器的SDK進行應用程式的開發,等硬體和系統除錯完成後再做聯調。應用程式基於新的SDK編譯一下,甚至無需重新編譯也可執行。當然,一個應用程式在別的裝置上跑得很好,但到另外一個裝置上卻不能工作也是很正常的。就像很多WM上的應用程式在WinCE中不能跑一樣,雖然核心相同,但系統不同,支援的API也是不同的。 最後說說開發語言,WinCE應用程式的開發有Win32、MFC和Managed等幾種方式。對於開發者來說,選擇使用哪一個主要看效能,開發的效能和執行的效能。根據能量守恆定律,開發效能和執行效能應該是一個此消彼長的關係。呵呵,跟能量守恆定律有關係麼?勉強找個有力證據吧。託管程式碼的開發效率很高,但執行效率相對就低了。這在物資還不是極大豐富的嵌入式系統上,就顯得尤為突出,實時性也得不到保證。MFC是基於Window32的一個基礎類庫,封裝了很多Win32的API,方便開發者使用,但它也是有缺點的,似乎也沒再更新。Win32是這三者中最底層的一個,編譯出的程式小,沒有額外的包袱,執行起來快,所以開發的難度自然就大了,程式碼量也很大。我們在開發應用程式時應根據實際情況選擇更合適的。
先說開發工具,目前用得比較多的開發工具有EVC4(SP4)、VS2005、VS2008和Platform Builder。 其中Platform Builder主要是用來定製作業系統的,雖然也支援編寫應用程式,但用得相對較少。記得沒錯的話,它還得先編譯系統,才能新建應用程式的工程。 VS2005和VS2008是微軟的集大成開發工具,PB6.0就是作為VS2005的外掛安裝的(PB6.0目前應該是不支援VS2008)。在VS2005中,你可以編譯WinCE6.0的作業系統,也可以編譯裝置上的應用程式,省去了切換開發環境的麻煩。 EVC4(SP4)即嵌入式的VC,使用起來基本跟VC6.0一致。 WinCE應用程式的開發相對桌面Windows應用程式的開發有一些特點,如下:
1. UNICODE編碼。WinCE中的應用程式只能使用UNICODE編碼,桌面系統則支援UNICODE和ANSI碼。在移植PC端程式到裝置上時需要注意這一點。
2.SDK。SDK即軟體開發支援包,軟體開發都少不了這個,但在WinCE應用程式的開發中尤為重要。因為WinCE系統本身是一個非標的作業系統,它的元件特性和可裁剪性決定了不同的系統支援的API是不同的。而桌面系統相對標準,SDK的作用就弱化了。WinCE中的SDK由系統開發人員在編譯完系統後,透過Platform Builder匯出。應用程式的開發人員安裝此SDK,並編寫應用程式,最終將應用程式下載到目標平臺上執行測試。一般來說,SDK是應用程式和作業系統之間的紐帶,但他們之間也並不是完全一一對應的。譬如,在硬體和作業系統都沒除錯好時,我們可以先用標準的SDK或者自己定製一個模擬器的SDK進行應用程式的開發,等硬體和系統除錯完成後再做聯調。應用程式基於新的SDK編譯一下,甚至無需重新編譯也可執行。當然,一個應用程式在別的裝置上跑得很好,但到另外一個裝置上卻不能工作也是很正常的。就像很多WM上的應用程式在WinCE中不能跑一樣,雖然核心相同,但系統不同,支援的API也是不同的。 最後說說開發語言,WinCE應用程式的開發有Win32、MFC和Managed等幾種方式。對於開發者來說,選擇使用哪一個主要看效能,開發的效能和執行的效能。根據能量守恆定律,開發效能和執行效能應該是一個此消彼長的關係。呵呵,跟能量守恆定律有關係麼?勉強找個有力證據吧。託管程式碼的開發效率很高,但執行效率相對就低了。這在物資還不是極大豐富的嵌入式系統上,就顯得尤為突出,實時性也得不到保證。MFC是基於Window32的一個基礎類庫,封裝了很多Win32的API,方便開發者使用,但它也是有缺點的,似乎也沒再更新。Win32是這三者中最底層的一個,編譯出的程式小,沒有額外的包袱,執行起來快,所以開發的難度自然就大了,程式碼量也很大。我們在開發應用程式時應根據實際情況選擇更合適的。