天天看點

移植到Windows CE 的經驗

  在WinCE平台下,可以使用.NET(Compact Framework),這是個好消息,但是移植的過程還是碰到了很多麻煩,特别是部署WinCE的開發環境就摸索了很久。

一.部署WinCE開發環境

1.安裝VS2005以及SP1

  更高的VS版本已經不直接支援WinCE了,VS2005對WinCE開發的支援應該說是最友善的。

2.安裝Windows Embedded CE 6.0

3.安裝ActiveSync 4.5

  ActiveSync在baidu搜尋就很容易找到下載下傳位址,下載下傳後安裝也還是很順利的。

二.使用WinCE進行開發、調試

  在上述的環境準備就緒後,我們就可以開始建立WinCE項目并進行調試了。

1.建立WinCE項目。

  使用VS2005建立項目,在左側菜單中,可以選擇“智能裝置->WinCE”,其是基于.NET 2.0 Compact Framework的。然後,就可以像開發普通的.NET應用一樣來編寫代碼了。

2.開始調試

(1)啟動ActiveSync。

  并點選“檔案”—>“連接配接設定”,在“允許連接配接到以下其中一個端口”下選擇“DMA”。

(2)打開仿真裝置管理器(VS2005->tools->仿真裝置管理器)。

(3)讓模拟器可以聯網。

  在仿真裝置管理器界面上,可以看到仿真程式清單,在某個清單項上(比如 Pocket PC 2003 SE 仿真程式)右鍵->Connect,連接配接成功後,再右鍵->cradle。

移植到Windows CE 的經驗

  如此,模拟器相當于與目前電腦位于同一個區域網路,如果,服務端程式在目前電腦上運作,那麼,模拟器上運作的用戶端程式要連接配接的是目前電腦的局網IP位址,而不能是“127.0.0.1”。我們需要把模拟器當作一個獨立的電腦裝置。

(4)接下來,我們就可以在WinCE程式中設定斷點,進行跟蹤和調試了。

三.關于反射(Reflection)在WinCE上的運作

  将ESFramework的某些功能移植到WinCE時,需要使用Reflection來動态擷取和設定object的某個屬性的值,就像這樣: 

   代碼的編寫和編譯都是沒有問題的,但是運作到這句時,會抛出NotSupportException。于是,我換了一個反射的方式:

  這樣,居然就能正常運作了,這是個有點奇怪的事情。

繼續閱讀