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>发信人: 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 + =
减小字号Ctrl + -
显示快捷键?