Sign in Join
Wiki copytemporary

Windows CE Interface/zh TW

한국어 · English · Français · Português · 中文(台灣)

設定Windows CE介面

要設定Windows CE介面,您需要多裝一個安裝程式,或者是手動設定介面,以下對兩種方法都有詳細的說明,當然,透過安裝程式當然是簡單多了。

使用額外的安裝程式

要用第一次穩定的Free Pascal for Windows CE來安裝WinCE開發環境的動作從來都沒容易過。

逐步教學:

Project->Compiler Option->Paths分頁

Project->Compiler Option->Code分頁

手動設定Windows CE介面

提供給Windows CE用的編譯器跟執行時期函式庫只有在Free Pascal 2.1.x版裡面才有附。Lazarus的最新版本裡面有包含這一版的Free Pascal。

步驟一 – 您得先在Windows上面把編譯器重新進行編譯,以產生Windows CE-ARM 交叉編譯器,相關指令請見: http://wiki.freepascal.org/WinCE port 移植WinCE.

步驟二 – 您必須用步驟一裡面產生出來的交叉編譯器,把FCL (Free Component Library)重新編譯,請參考http://wiki.freepascal.org/WinCE_port#Building_FPC_libraries 這裡的指令說明。

步驟三 – 將以下的指令作成批次檔,放在您安裝Lazarus的目錄下,並執行它:

pascal
PATH=C:\Programas\lazarus\pp\bin\i386-win32;c:\Programas\arm
make lcl LCL_PLATFORM=wince PP=ppcrossarm.exe CPU_TARGET=arm OS_TARGET=wince

上述指令會編譯出Windows CE可使用的LCL。

步驟四 – 把LazarusPackageIntf 進行交叉編譯,這樣就可以使用第三方視覺元件了,請切換到lazarus\packager\registration目錄:

pascal
PATH=C:\Programas\lazarus\pp\bin\i386-win32;c:\Programas\arm
make PP=ppcrossarm.exe CPU_TARGET=arm OS_TARGET=wince

附註: 您必須要在您的專案的unit path中,特地把$(LazarusDir)\packager\units\$(TargetCPU)-$(TargetOS)\ 這個路徑加入,只要您的專案有把FCL設定成必要套件,專案的unit path就一定要加該路徑。

步驟五 – 現在您就可以開始使用Lazarus IDE來設計、編譯、對您的應用程式進行偵錯了。

用Lazarus IDE來編譯Windows CE的專案

附註: 最近常有使用者回報,在進行程式連結的時候,IDE會回報說找不到 "wincemenures.or"這個檔案。您只要從"lazarus/lcl/interfaces/wince"這個目錄裡把該檔案複製到"lazarus/lcl/units/arm-wince"目錄就行了。

就像您要為其他介面跟作業系統的程式進行編譯的動作一樣。 請確定您已經把Lazarus選單裡面的設定設好了: Project->Compiler Option->Paths分頁

Project->Compiler Option->Code分頁

您還需要把: Environment options-> Files分頁的 compiler path項目設定為 ppcrossarm.exe這個編譯程式。

設定完後,IDE就可以用來編譯您的Windows CE專案了。

在Lazarus IDE裡面對Windows CE軟體進行偵錯

您也能直接在Lazarus IDE裡面對產生的應用程式進行偵錯。

步驟一 – 在Lazarus IDE裡面,選擇Environment->Debugger Options項目,把裡面的debugger path設定為專為WinCE設計的gdb程式所在的目錄,您可以從這裡取得為WinCE設計的gdb程式執行檔:1

步驟二 – 如果您使用Microsoft Device Emulator 1.0或2.0,請執行它,並確認您設定讓該模擬器使用128MB的記憶體,在模擬器裡面設定一個與作業系統共用的資料夾。然後在您用來編譯/建立應用程式的批次檔裡面,加入一個命令,把產生出來的WinCE執行程式複製到那個共用的資料夾裡面去。 以下是一個啟動模擬器,並直接設定讓模擬器使用128MB的指令。

pascal
start deviceemulator.exe ".\ppc_2003_se\PPC_2003_SE_WWE_ARMv4.bin" /memsize 128 /skin 
".\ppc_2003_se\PocketPC_2003_Skin.xml"

啟動模擬器以後,如果您想停止它,請直接進行儲存並離開 ('save and exit') ,以後想要再啟動的時候,可以直接從開始命令列裡面執行啟動模擬器(或復原模擬器)的捷徑即可。

步驟三 – 執行Device Emulator Manager,並在已經執行的模擬器項目上按滑鼠右鍵,選擇”連接底座”(cradle)。此時,Microsoft的ActiveSync應該會自動跳出來。如果ActiveSync沒有自己跳出來,則請您直接按模擬器裡面的”檔案->與電腦連接”(File->Get connected),如果ActiveSync這時候還是無法認得模擬器,請先”移除底座”,然後再次進行”連接底座”(cradle)的動作。

步驟四 – 把該檔案透過檔案總管複製到 \gdb目錄裡面去。如果這是您第一次使用模擬器,則您必須在'My Pocket PC'這個項目中建立gbd目錄,從檔案總管裡面看到的 ‘My Pocket PC’這個項目就是模擬器的根目錄。(要讓這個動作加速的話,請直接打開一個檔案總管視窗,切換到您建置應用程式的目錄,點選該檔案,按下Ctrl+C,然後到模擬器裡面的 \gdb 目錄裡面按 Ctrl+V把該檔案貼上即可)

步驟五 – 現在您已經可以對您的WinCE應用程式進行偵錯了,您的application.gdb應該會被啟動,它會把arm-wince-pe-stub.exe這個執行檔複製到\gdb目錄裡面,並檢查您的應用程式執行檔已經存在,然後啟動您的程式。 如果您遇到任何錯誤,請確定\gdb這個資料夾是否存在,arm-wince-pe-stub.exe跟您的應用程式執行檔是否位於該資料夾中。使用者常遇到無法把過大的執行檔順利複製到\gdb資料夾裡面的情形,所以我們才希望您讓模擬器使用128MB的記憶體,否則模擬器的預設值是只會使用64MB而已的。

註記:

1. 在WinCE系統裡面,在結束程式後,程式還會繼續被留在記憶體裡面所以您不能把執行檔給覆蓋掉。因此您得從WinCE的控制台(開始->設定)把記憶體裡面執行中的程式個體給刪除,步驟如下 (以下步驟是在模擬器裡面點選的喔): 開始工作列->設定->系統(分頁)->記憶體->執行程式(分頁)->點選您的應用程式名稱->點選”停止”

2. 每次您完成偵錯的步驟後,請勿直接結束程式,而要執行”Program Reset”,來把偵錯程式重置。請注意,這個程序執行過後,有時候您的執行程式個體還會留在模擬器的記憶體裡面,所以請您依照註記1的說明,把該程式執行個體給刪除掉。

安裝與使用Pocket PC 模擬器

1 – 您可以從微軟的網站下載Pocket PC的模擬器. 我所列出的模擬器跟英文版網頁所列的不同,這是微軟Device Emulator 2.0的中文版,大家可以放心下載,不用擔心有語文上的隔閡。

如果您需要正體中文的Windows Mobile 6裝置模擬器,請從這裡下載,請下載 0404\Windows Mobile 6 Professional Images (CHT).msi,安裝裡面有很多個模擬器,您如果不需要行動電話功能的純PDA,安裝後,請執行開始工作列->Windows Mobile 6 SDK->Standalone Emulator Images->Chinese (Traditional)中的Classic裝置即可。

2 – 在英文版網頁裡面,提到建議大家下載微軟的虛擬機器網路驅動程式,好讓模擬器可以具備連線功能,但在中文網頁中提供給大家的是微軟的裝置管理員2.0版,已經內建NE2000驅動程式,可以直接讓模擬器分享電腦網路卡以獲得網路功能了,所以這些驅動程式就免了。

3 – 下載ActiveSync 4.5來安裝,如果您的電腦上已經裝了ActiveSync 4.5或更新的版本,就可以跳過這個步驟,否則,請您到這個網頁把ActiveSync 4.5下載回來安裝,雖然該網頁會要求您註冊,但也別怕,請直接按下繼續,然後選擇不要註冊,還是可以下載回來安裝的。(如果您使用的是Windows Vista,那就不用下載ActiveSync 4.5了,您得下載Windows Mobile裝置中心6.1 (32位元版)或是Windows Mobile裝置中心6.1 (64位元版),請依照您的Windows Vista的版本決定要下載哪一個程式回來安裝。

4 – 設定ActiveSync/Windows Mobile裝置中心6.1,在一般完全不設定的情形下,ActiveSync/ Windows Mobile裝置中心6.1只能辨識插入USB插槽的Windows Mobile裝置,模擬器是無法被辨識的。請您依照下列步驟進行設定: ActiveSync 4.5: 檔案->連線設定: 允許連線到下列其中一個裝置 : 請選擇 DMA

Windows Mobile裝置中心6.1: “行動裝置設定”->”連線設定”: 勾選”允許連線到下列其中一個裝置”,選擇”DMA”後,按確定鍵。

至此,您已經有了完整功能的PocketPC模擬器了,它已經可以用來跟Lazarus進行應用程式開發的工作了。

要在模擬器上面對Lazarus開發的應用程式進行偵錯,您需要透過ActiveSync/Windows Mobile 裝置中心6.1來使用GDB,不然就只能直接執行了。

在模擬器上面執行應用程式

1 – 點選Windows開始工作列->Windows Mobile 6 SDK->Standalone Emulator Images->Chinese (Traditional)中的Classic裝置,如果您需要具備電話功能的Pocket PC裝置,則請您點選其它的模擬裝置,裡頭有多種不同螢幕解析度的模擬裝置喔。

2 – 如果您從來沒有為這個模擬裝置設定任何共用資料夾的話,請現在幫它設定好,設定的方法如下: 點選模擬裝置視窗上面: 檔案->設定->一般(分頁) 最底下有個共用資料夾,點選右邊的按鍵選擇一個系統中的資料夾即可。

設定完畢後,您就有了可以跟Windows CE模擬裝置共用的資料夾,也就能把您用Lazarus作出來的Windows CE執行檔從這裡放到模擬裝置上面去執行了。

3 – 在模擬裝置上面點選: 開始->程式集,然後在畫面中點選”檔案總管”,然後從下拉式選單中,您就可以選擇”Storage Card”。”Storage Card”這個資料夾就是您剛剛設定的共用資料夾了,如果您是把執行檔放在這個資料夾裡面,直接點它,就可以從模擬裝置上面執行它了。

螢幕截圖

以下我們用Free Pascal與Lazarus+WinCE的一個簡單範例來測試交叉編譯器:

要怎麼新增一個視覺元件呢?

範例: TButton.

TButton是在lcl/buttons.pp這個檔案中定義的。它是一個跟作業系統無關的LCL元件,所以不管是開發哪一種平台應用程式的程式設計人員都能使用到它。

它的視覺化類別(widgetset class)則是寫在lcl/widgetset/wsbuttons.pp這個檔案中,這是所有視覺化元件的基礎,與平台無關的(可以支援qt, carbon, gtk, win32等)。

它的wince介面類別則在lcl/interfaces/wince/wincewsbuttons.pp這個檔案裡:

pascal
 TWinCEWSButton = class(TWSButton)
 private
 protected
 public
   class function  CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
 end;

每個WS類別,實際上都做了一些需要進行註冊的動作,您可以在每個wincewsXXX.pp檔案結尾的initialization區段裡看到:

text
 RegisterWSComponent(TButton, TWinCEWSButton);

請注意,DestroyHandle也是需要被實現的,它會被用來把這些控制項所用到的記憶體空間釋放掉。

請同時參照

下載

本網頁的更新記錄


From the Free Pascal wiki, page "Windows CE Interface/zh TW", as it stood on 2015-07-20 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Edited on wiki.freepascal.org by 4 people, 2008–2015

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
DenniesNew page: {{Windows CE Interface}} == 設定Windows CE介面== 要設定Windows CE介面,您需要多裝一個安裝程式,或者是手動設定介面,以下對兩種方法都有詳細的說...
Dennies手動設定Windows CE介面
Dennies請同時參照
Dennies請同時參照
Dennies請同時參照
PengtuCategory:zh
Chronos
FTurtle
FTurtle

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.