?? 00000028.htm
字號:
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>將Windows 95 的程序移植到Windows CE turbolinux </title></head><body><center><h1>BBS 水木清華站∶精華區</h1></center><a name="top"></a>發信人: encarta (知更鳥), 信區: Embedded <br />標 題: 將Windows 95 的程序移植到Windows CE <br />發信站: BBS 水木清華站 (Thu Aug 10 21:35:47 2000) <br /> <br />引言 <br /> 許多Windows 95下的應用程序可以移植到MS Windows CE上,比重新編寫軟件要容易 <br />的多。移植到Windows CE上時需注意的主要問題有: <br />MS Win32應用程序接口(API)和Windows CE應用程序APIs之間的差別 <br />存儲極限和溢出恢復 <br />能量限制 <br />各種各樣硬件的特點和限制 <br />測試與調試之間的差別 <br />Win32與 Windows CE APIs之間的差別 <br /> Windows CE API與Win32 API有幾點主要區別: <br />更小。只支持Win32 API的一個子集,支持的子集中的組件減小了。例如,支持更小的窗 <br />口類型,但支持更多的顏色和字體。 <br />具有Windows CE特殊擴展。許多擴展,包括觸摸屏和通告,支持不同設備的硬件權能, <br />但有些,如命令條,代替了Win32中的相應組件。 <br />異常處理中有限制。支持Win32結構的異常處理,但Windows CE不支持C++的異常處理。 <br /> <br /> 從PC平臺把Win32應用程序移植到Windows CE上時,主要問題通常是API更小。應用 <br />程序需要滿足Windows CE API的限制和目標設備的權能。 <br />標準MFC和Windows CE MFC的差別 <br /> MS基礎類庫已成為先進Windows應用程序開發的日益受歡迎的工具。MFC為圖形用戶 <br />界面、數據處理系統和系統界面提供了魯棒而全面的類集。 <br /> Windows CE的MFC設計得與標準MFC的功能及組件緊密匹配,但每個類所支持的組件 <br />與現有類之間有重要區別。除此而外,Windows CE MFC 中有一類,在Windows CE平臺中 <br />是唯一的。例如,Windows CE中一個重要的新特點就是命令條控制。 <br /> 如果應用程序是用標準MFC編寫的,就需要仔細檢查類、方法和程序中的特點,要證 <br />實它們與Windows CE中的MFC兼容。 <br />存儲限制 <br /> 一般來說,Windows CE設備比臺式PC機的RAM小許多。另外,大多沒有磁盤驅動或其 <br />它大容量存儲設備。大多數情況下,要將應用程序移植到Windows CE中需要減小它的大 <br />小。 <br /> 移植時,要主要最常用的組件。MS Word和MS Excel就是將應用程序組件減小而仍保 <br />持其基本功能的例子。 <br />應用程序應盡量少用存儲器的內存。也必須能和系統協調,以處理內存不足的情況。 <br />能量限制 <br /> Windows CE設備可能有極為有限的能源,如手持PC(H/PC),靠兩塊AA電池運行。 <br />所寫程序應使消耗能量最小。為了節省能量,許多Windows CE設備在一定時間內不用時 <br />自動關閉。Windows CE應用程序該是能在斷電時停止處繼續下去。如果運行程序時能量 <br />嚴重不足,必須能很好處理這種情形。 <br />硬件特點: <br /> 設計出的Windows CE程序一般運行在比PC機小且功能弱的設備上。如: <br />屏幕小,象素少,可能不支持彩色。 <br />CPU更慢 <br />用戶接口硬件如鍵盤等可能不夠靈活 <br /> 另一方面,一些設備的硬件可能不是標準PC上的,如H/PC上的紅外發收裝置。所以 <br />千萬不要認為所有基于Windows CE的設備都與其它PC很相似。頭腦中一定要強烈意識到 <br />目標設備的硬件問題。 <br /> 將程序移植到多類設備上時,需要找一個最低通用標準以確保程序成功移植到目標 <br />平臺。盡管仿真是重要的開發工具,應用程序必須最終在實際設備上測試以確保執行正 <br />確。 <br />測試與調試 <br /> 開發Windows CE應用程序與開發其它的Win32程序相似,但所用的測試與調試方法卻 <br />極為不同。如為一個標準Windows CE目標(H/PC)開發,則開發和測試工作大多可在Wi <br />ndows CE仿真環境下用你的開發工具來作。而如果為非標準平臺開發(用戶嵌入應用程 <br />序),則需要考慮證實程序正確性的另外方法。Windows CE API包括調試適于調試的界 <br />面(DebugActiveProcess和DebugEvent),可用來產生嵌入系統調試工具。針對目標硬 <br />件和程序的不同,也可用Windows CE的Remote API組件來輔助調試。 <br /> 總之,一定要將應用程序在所有要操作的系統類上仔細測試,不要指望仿真環境能 <br />提供足夠的測試環境。 <br />應用程序移植到Windows CE的系統方法 <br /> 應用Win95移植程序到Windows CE的系統方法應能使程序至少是可以運行起來。 <br /> 這一部分不是為了詳細描述必要步驟,而是闡明主要問題。 <br />移植Windows CE API <br /> 如果程序是16位基于Windows的,首先要將它移植到Win32。Win32一般支持16位Win <br />dows功能,以提供后向兼容,Windows CE卻不能。 <br /> 下一步,程序中所有的API基準--包括函數、信息和相關數據類型,然后或者修改或 <br />者替代與Windows CE API 不兼容的部分。舉例如下: <br />有一些Win32函數根本不支持--16位Windows函數根本不支持。替換這些函數,或避開使 <br />用。例如MoveTo和LineTo畫圖函數在Windows CE中不能被支持,可替換為PolyLine函數 <br />。 <br />一些Win32函數用等價的Windows CE函數替代了。如工具和菜單條組合成了一個命令條, <br />有一個新的API。 <br />一些Win32程序被支持,但受限制。可能有一個或多個參數無效了。另外可能有的參數選 <br />項減少了。例如,CreateWindow 和CreatWindowEK函數都支持,但只支持Win32窗口類型 <br />子集。 <br />被支持的數據類型可能需要修改。支持所有Win32必須的結構,但有些數不能用了。其它 <br />結構可能不會接受全部選項。 <br />一些消息不被支持--包括許多WM_*和EM_*消息。有一些支持的但修改了。如wParam和Ip <br />aram的內容不同了。加上一些Windows CE特別消息,如WM_ HIBERNATE。 <br />Windows CE內存管理 <br /> 內存數量是有設備決定的,所以要注意目標平臺的容量。用Windows CE,大容量存 <br />儲器件(如臨時文件)和用RAM沒有任何區別。 <br /> Windows CE程序中盡量少用內存或大存儲器件。注意費內存的組件如位圖,能否簡 <br />化或去掉。除非必要,最好不用臨時存儲器件。有些可重寫編碼以減小內存消耗。但速 <br />度會減慢,這一點也許可以接受。 <br /> 如果內存緊張,Windows CE提供了一種減小內存開支,重新存儲。關鍵在于WM_ HI <br />BERNATE消息,非標準Win32中的消息。 <br /> 注意:好的程序必須用WM_ HIBERNATE句柄,并當內存吃緊時進行協調。 <br />管理可用的能量 <br /> 許多Windows CE設備以電池供電,能源有限。 <br /> 運行中的CPU要消耗大量的電能,所以應避免不必要的CPU循環的編碼。如PeekMess <br />age函數尤其應慎用,它可以令CPU不停運轉。 <br /> 當電源不足時,Windows CE會顯示警告信息,但不給應用程序發警告。 <br /> <br />-- <br /> <br />※ 來源:·BBS 水木清華站 smth.org·[FROM: 202.120.8.76] <br /><a href="00000027.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一頁</a><a href="index.htm">回到目錄</a><a href="#top">回到頁首</a><a href="00000029.htm">下一篇</a></h1></center><center><h1>BBS 水木清華站∶精華區</h1></center></body></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -