Windows CE .NET 应用程序开发:我有哪些选择?(转)

摘要:比较 Microsoft Windows CE .NET 应用程序开发人员目前可以使用的三种开发选择(即 Win32、MFC 和 Microsoft .NET Framework 精简版)的优势。学习如何使用每个运行时创建类似于 MFC Scribble 示例的应用程序。

前不久,我们分别在中国台湾和韩国举办了“Microsoft® Windows® Embedded 开发人员研讨会”(日本和中国大陆将在二月举行,欧洲将在三月举行)。在汉城的时候,有一次我与其他演讲者在我们下榻的旅馆附近的 Outback Steakhouse 等待就餐时听到有人在谈论“与服务器对话”的话题,当时首先映入我脑海的是一台采用了语音识别和文字到语音转换的大型的多处理器计算机。(我想它一定很酷。)不一会儿,我们这张桌子上的人也开始谈论起这个话题,但大家的看法似乎大同小异。我想,这就是一群倍受时差反应折磨的 Windows 嵌入技术开发人员/演讲者聚在一个饭店里时可能会发生的事情吧。

鉴于 Microsoft Windows CE .NET 4.1(英文)的最后一部分最近已经在 Web 上发布,所以现在为 Windows CE .NET 设备应用程序开发人员介绍各种可以使用的选择应该是一个不错的时机。

Microsoft® Windows® CE .NET 应用程序开发人员目前有三种选择:它们分别是 Win32、Microsoft 基础类(以及 ATL,它主要用于创建 COM 组件、Web 服务和 Microsoft® ActiveX® 控件)和 Microsoft® .NET Framework 精简版。这三种选择各有优势。对应用程序开发人员来说,您可以自行决定使用哪一种选择来构建您的应用程序。

选择的过程中可能需要考虑多方面的因素。本文将着重讨论最重要的三个因素:应用程序文件的大小、运行时占用的资源以及应用程序开发的速度。其他要考虑的因素可能包括安全性、稳定性、工作集需要、实时支持、性能、现有代码库等。我们将通过开发一个类似于 Scribble 的应用程序来了解各个运行时的开发过程。

如果您想知道运行时的相对大小,可以参考下表列出的各运行时的总体大小:

  • Win32。Win32 是操作系统的 API,因此没有有关编写 Win32 本机代码应用程序的大小数据。使用 Win32 API 开发应用程序很耗时,因为这种编程方式所用的 API 是操作系统中最底层的 API。(详细内容将在后面介绍)。
  • Microsoft 基础类 (MFC)。Windows CE 的 Microsoft 基础类是由两个 DLL 提供的:MFCCE400.DLL(大约 300 KB)和 OLECE400.DLL(大约 200 KB)。您的映像可能不需要 OLECE400.DLL,因此,最小的大小约为 300 KB,而总大小(包括 OLE [COM] 支持)约为 500 KB。请注意,Windows CE 不支持为桌面定义的 OLE(例如,将 Microsoft® Excel 电子表格嵌入到 Microsoft® Word 文档中)。我们确实支持“O”(在 COM 对象中,“O”代表“Objects”,即对象),但不支持链接和嵌入。
  • Framework 精简版。Framework 精简版包括许多 DLL,例如 System.drawing.dll。Framework 精简版的大小约为 1.3 MB。支持所有的 Windows CE .NET 4.1 处理器。Framework 精简版支持桌面 Microsoft® .NET Framework 的一个子集。这并不奇怪,因为桌面 Framework 的大小在 30 MB 以上。我们将在讨论应用程序时深入探讨这个话题。

为了说明包括 MFC 和 Framework 精简版时的大小差异,我在 Windows CE .NET Emulator 中构建了一个“Internet Appliance”平台。下面是各个发行版本的大小比较。

运行时大小(以字节为单位)基本 Win32 平台增加的大小
Win329,805,2310
MFC10,234,415429,184
Framework 精简版11,201,4591,396,228

在平台中添加对 MFC 或 Framework 精简版的支持非常简单,只需右击 Platform Builder 目录中的组件,然后单击 Add to Platform(添加到平台)即可。如果您只关心操作系统的大小,那么您可以跳到本文的结尾,看看我们下个月要讨论的话题。对大多数读者来说,有关运行时的决策并非易事。

为了帮助您了解每个运行时涉及的工作量,下面我们分别用 Win32、MFC 和 .NET Framework 精简版编写一个 Scribble 式的应用程序(与 MFC Scribble 示例相似)。该应用程序将包括所有常用的功能(文件保存和恢复、菜单以及图形输出)。每个应用程序都需要处理同一组事件中的大多数事件:按下鼠标、移动鼠标、释放鼠标,以及构建一个可以在相应的画图/绘图功能中回放的鼠标点数组。它还需要处理文件的保存和恢复操作。听起来十分简单,对不对?好吧,现在我们打开一瓶 Jolt Cola,放松一下,然后开始编码。

Win32

为 Windows CE .NET 平台编写代码时,可以创建应用程序、驱动程序、控制面板小程序或 DLL。要创建某些底层代码,如设备驱动程序、实时代码、控制面板小程序等,本机 Win32 开发是唯一的选择。编写用户应用程序时,可以使用 Win32、MFC 或 Framework 精简版。在某些方面,您可能会考虑对某个设备进行分层,最底层为驱动程序和实时代码,用 Win32/本机代码编写;然后是一些中间层、数据分析层,或许还有一个 DLL 或 COM 对象,可以用本机代码、MFC 或 ATL 编写;最高层可能是一个提供用户界面的应用程序,可以用 Win32、MFC 或 Framework 精简版编写。

Platform Builder 和 Microsoft® eMbedded Visual C++® 都包括一个应用程序向导,可以通过它为应用程序创建 Win32 框架代码。框架代码包括对绘图(应用程序工作区中心的“Hello World”)、菜单(支持 File [文件]/Exit [退出] 和 Help [帮助]/About [关于] 的支持,还包括 About(关于)框的代码。

20051221202538956.gif

图 1:初具规模的 Win32 框架应用程序

对我们的任务来说,从框架代码入手是最好的选择,而且只有在这个时候,这些工具才会在我们开发 Win 32 应用程序的过程中发挥其作用(当然,除此以外我们还会用到 eMbedded Visual C++ 附带的优秀联机帮助功能)。有了框架代码之后,我们需要手动编写其他所有内容。我们的示例应用程序要支持鼠标事件,因为没有向导可以帮助我们实现这个过程,所以我们要在 Windows 过程 (WndProc) 中插入相应的 WM_MOUSEMOVE、WM_LBUTTONDOWN 和 WM_LBUTTONUP 处理程序。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126341/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-126341/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值