00000028.htm

来自「水木社区 embeded 版精华区 下载」· HTM 代码 · 共 118 行

HTM
118
字号
<?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>发信人:&nbsp;encarta&nbsp;(知更鸟),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;将Windows&nbsp;95&nbsp;的程序移植到Windows&nbsp;CE&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Aug&nbsp;10&nbsp;21:35:47&nbsp;2000)&nbsp;<br />&nbsp;<br />引言&nbsp;<br />  许多Windows&nbsp;95下的应用程序可以移植到MS&nbsp;Windows&nbsp;CE上,比重新编写软件要容易&nbsp;<br />的多。移植到Windows&nbsp;CE上时需注意的主要问题有:&nbsp;<br />MS&nbsp;Win32应用程序接口(API)和Windows&nbsp;CE应用程序APIs之间的差别&nbsp;<br />存储极限和溢出恢复&nbsp;<br />能量限制&nbsp;<br />各种各样硬件的特点和限制&nbsp;<br />测试与调试之间的差别&nbsp;<br />Win32与&nbsp;Windows&nbsp;CE&nbsp;APIs之间的差别&nbsp;<br />  Windows&nbsp;CE&nbsp;API与Win32&nbsp;API有几点主要区别:&nbsp;<br />更小。只支持Win32&nbsp;API的一个子集,支持的子集中的组件减小了。例如,支持更小的窗&nbsp;<br />口类型,但支持更多的颜色和字体。&nbsp;<br />具有Windows&nbsp;CE特殊扩展。许多扩展,包括触摸屏和通告,支持不同设备的硬件权能,&nbsp;<br />但有些,如命令条,代替了Win32中的相应组件。&nbsp;<br />异常处理中有限制。支持Win32结构的异常处理,但Windows&nbsp;CE不支持C++的异常处理。&nbsp;<br />&nbsp;<br />  从PC平台把Win32应用程序移植到Windows&nbsp;CE上时,主要问题通常是API更小。应用&nbsp;<br />程序需要满足Windows&nbsp;CE&nbsp;API的限制和目标设备的权能。&nbsp;<br />标准MFC和Windows&nbsp;CE&nbsp;MFC的差别&nbsp;<br />  MS基础类库已成为先进Windows应用程序开发的日益受欢迎的工具。MFC为图形用户&nbsp;<br />界面、数据处理系统和系统界面提供了鲁棒而全面的类集。&nbsp;<br />  Windows&nbsp;CE的MFC设计得与标准MFC的功能及组件紧密匹配,但每个类所支持的组件&nbsp;<br />与现有类之间有重要区别。除此而外,Windows&nbsp;CE&nbsp;MFC&nbsp;中有一类,在Windows&nbsp;CE平台中&nbsp;<br />是唯一的。例如,Windows&nbsp;CE中一个重要的新特点就是命令条控制。&nbsp;<br />  如果应用程序是用标准MFC编写的,就需要仔细检查类、方法和程序中的特点,要证&nbsp;<br />实它们与Windows&nbsp;CE中的MFC兼容。&nbsp;<br />存储限制&nbsp;<br />  一般来说,Windows&nbsp;CE设备比台式PC机的RAM小许多。另外,大多没有磁盘驱动或其&nbsp;<br />它大容量存储设备。大多数情况下,要将应用程序移植到Windows&nbsp;CE中需要减小它的大&nbsp;<br />小。&nbsp;<br />  移植时,要主要最常用的组件。MS&nbsp;Word和MS&nbsp;Excel就是将应用程序组件减小而仍保&nbsp;<br />持其基本功能的例子。&nbsp;<br />应用程序应尽量少用存储器的内存。也必须能和系统协调,以处理内存不足的情况。&nbsp;<br />能量限制&nbsp;<br />  Windows&nbsp;CE设备可能有极为有限的能源,如手持PC(H/PC),靠两块AA电池运行。&nbsp;<br />所写程序应使消耗能量最小。为了节省能量,许多Windows&nbsp;CE设备在一定时间内不用时&nbsp;<br />自动关闭。Windows&nbsp;CE应用程序该是能在断电时停止处继续下去。如果运行程序时能量&nbsp;<br />严重不足,必须能很好处理这种情形。&nbsp;<br />硬件特点:&nbsp;<br />  设计出的Windows&nbsp;CE程序一般运行在比PC机小且功能弱的设备上。如:&nbsp;<br />屏幕小,象素少,可能不支持彩色。&nbsp;<br />CPU更慢&nbsp;<br />用户接口硬件如键盘等可能不够灵活&nbsp;<br />  另一方面,一些设备的硬件可能不是标准PC上的,如H/PC上的红外发收装置。所以&nbsp;<br />千万不要认为所有基于Windows&nbsp;CE的设备都与其它PC很相似。头脑中一定要强烈意识到&nbsp;<br />目标设备的硬件问题。&nbsp;<br />  将程序移植到多类设备上时,需要找一个最低通用标准以确保程序成功移植到目标&nbsp;<br />平台。尽管仿真是重要的开发工具,应用程序必须最终在实际设备上测试以确保执行正&nbsp;<br />确。&nbsp;<br />测试与调试&nbsp;<br />  开发Windows&nbsp;CE应用程序与开发其它的Win32程序相似,但所用的测试与调试方法却&nbsp;<br />极为不同。如为一个标准Windows&nbsp;CE目标(H/PC)开发,则开发和测试工作大多可在Wi&nbsp;<br />ndows&nbsp;CE仿真环境下用你的开发工具来作。而如果为非标准平台开发(用户嵌入应用程&nbsp;<br />序),则需要考虑证实程序正确性的另外方法。Windows&nbsp;CE&nbsp;API包括调试适于调试的界&nbsp;<br />面(DebugActiveProcess和DebugEvent),可用来产生嵌入系统调试工具。针对目标硬&nbsp;<br />件和程序的不同,也可用Windows&nbsp;CE的Remote&nbsp;API组件来辅助调试。&nbsp;<br />  总之,一定要将应用程序在所有要操作的系统类上仔细测试,不要指望仿真环境能&nbsp;<br />提供足够的测试环境。&nbsp;<br />应用程序移植到Windows&nbsp;CE的系统方法&nbsp;<br />  应用Win95移植程序到Windows&nbsp;CE的系统方法应能使程序至少是可以运行起来。&nbsp;<br />  这一部分不是为了详细描述必要步骤,而是阐明主要问题。&nbsp;<br />移植Windows&nbsp;CE&nbsp;API&nbsp;<br />  如果程序是16位基于Windows的,首先要将它移植到Win32。Win32一般支持16位Win&nbsp;<br />dows功能,以提供后向兼容,Windows&nbsp;CE却不能。&nbsp;<br />  下一步,程序中所有的API基准--包括函数、信息和相关数据类型,然后或者修改或&nbsp;<br />者替代与Windows&nbsp;CE&nbsp;API&nbsp;不兼容的部分。举例如下:&nbsp;<br />有一些Win32函数根本不支持--16位Windows函数根本不支持。替换这些函数,或避开使&nbsp;<br />用。例如MoveTo和LineTo画图函数在Windows&nbsp;CE中不能被支持,可替换为PolyLine函数&nbsp;<br />。&nbsp;<br />一些Win32函数用等价的Windows&nbsp;CE函数替代了。如工具和菜单条组合成了一个命令条,&nbsp;<br />有一个新的API。&nbsp;<br />一些Win32程序被支持,但受限制。可能有一个或多个参数无效了。另外可能有的参数选&nbsp;<br />项减少了。例如,CreateWindow&nbsp;和CreatWindowEK函数都支持,但只支持Win32窗口类型&nbsp;<br />子集。&nbsp;<br />被支持的数据类型可能需要修改。支持所有Win32必须的结构,但有些数不能用了。其它&nbsp;<br />结构可能不会接受全部选项。&nbsp;<br />一些消息不被支持--包括许多WM_*和EM_*消息。有一些支持的但修改了。如wParam和Ip&nbsp;<br />aram的内容不同了。加上一些Windows&nbsp;CE特别消息,如WM_&nbsp;HIBERNATE。&nbsp;<br />Windows&nbsp;CE内存管理&nbsp;<br />  内存数量是有设备决定的,所以要注意目标平台的容量。用Windows&nbsp;CE,大容量存&nbsp;<br />储器件(如临时文件)和用RAM没有任何区别。&nbsp;<br />  Windows&nbsp;CE程序中尽量少用内存或大存储器件。注意费内存的组件如位图,能否简&nbsp;<br />化或去掉。除非必要,最好不用临时存储器件。有些可重写编码以减小内存消耗。但速&nbsp;<br />度会减慢,这一点也许可以接受。&nbsp;<br />  如果内存紧张,Windows&nbsp;CE提供了一种减小内存开支,重新存储。关键在于WM_&nbsp;HI&nbsp;<br />BERNATE消息,非标准Win32中的消息。&nbsp;<br />  注意:好的程序必须用WM_&nbsp;HIBERNATE句柄,并当内存吃紧时进行协调。&nbsp;<br />管理可用的能量&nbsp;<br />  许多Windows&nbsp;CE设备以电池供电,能源有限。&nbsp;<br />  运行中的CPU要消耗大量的电能,所以应避免不必要的CPU循环的编码。如PeekMess&nbsp;<br />age函数尤其应慎用,它可以令CPU不停运转。&nbsp;<br />  当电源不足时,Windows&nbsp;CE会显示警告信息,但不给应用程序发警告。&nbsp;<br />&nbsp;<br />--&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;202.120.8.76]&nbsp;<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 + =
减小字号Ctrl + -
显示快捷键?