CSDN博客

img sonicdater

用 eMbedded Visual Basic 编写移动应用程序

发表于2002/2/16 23:32:00  943人阅读

用 eMbedded Visual Basic 编写移动应用程序
Larry Roof
Tonked.com
2001年5月9日

本文最初发表在 MSDN Online Voices 的 Two for the Road 专栏(http://msdn.microsoft.com/voices/road.asp(英文))。

下载示例代码 下载此专栏的示例代码(英文)。

本月,我从硅村(Silicon Village)这一移动应用程序开发的中心来到您的身边。有些人可能不知道硅村,在此我特别介绍一下,硅村坐落于密歇根州的东南部,那里的大街上有每个正在彷徨的代码员所寻求的东西 - 11MB 无线网络连接。是的,您没有听错,在任何地方都可以获得 11 MB 的移动网络。我并不是指在办公室里。那是 eVC++ 移动应用程序向往者的事。我指的是在大街上,在 eVB 人群转悠的大街上。要到“赛百味”去吃午餐吗?嗨,带上您的 iPaq、PC 卡套和 Lucent 无线卡,您就可以在掌上访问 Internet。您正在为错过 eBay 上的 iPaq 大减价发愁吗?在硅村,这不是问题,因为您始终在网上。

不过,您需要足够的旅行指南。好了,如此说来,您已决定放弃自己舒适的办公室生活,要满腔热情地面对危险,拥抱移动应用程序开发员的生活方式了。我为您骄傲,同时也为您担忧。摆在您面前的是流浪编码员往来的新领域,这帮编码员就像从连续剧“Mad Max”中走出来的人物,腰间挂满了电子装置。

您选择的开发工具是 Microsoft 的 eMbedded Visual Basic® (eVB),利用它,您可以创建适合掌上设备的软件杰作。

如果您是一个有经验的 Visual Basic 开发人员,那么对您来说,eVB 就象是一块蛋糕,唔,也可能是小甜饼或小饼干之类的东西,不过肯定是甜的。

在本文中,我将带领您经历创建您第一个 eVB 应用程序的全过程。在您一头扎进使用 eVB 创建、编码和测试应用程序的工作之前,您将先学习需要了解的一切。

2001 eVB 之游

作为一个经验丰富的 Visual Basic 开发人员,一启动 eVB,您就会发现其界面让您有置身于家中的感觉。除了菜单有一些变化,工具栏上少了一些工具之外,其它一切都正如您想象的那样。

尽管如此,我仍然需要指出几个关键问题。第一个就是“工程”菜单。您可能会马上注意到该菜单下的大多数命令都不见了。事实上,您在 Visual Basic 中该菜单下能看到的大多数命令在这里都没有了。除窗体和标准模块之外,类模块、用户控件、数据环境或所有其它组件都不再存在。您可能会问,“怎么会这样?”答案非常简单 - eVB 不支持它们。

此时,我要给大家提一项会让最富经验的编码员都觉得扫兴的建议 - 阅读 eVB 附带的文档。我知道,您肯定在想“噢,Roof,这太过分。别逼我。我宁愿在闲暇时间与用户瞎混也不愿阅读文档。” 但在这件事上,您必须相信我。eVB 和 Visual Basic 之间存在许多差异,如果您不阅读文档,就会感到象是在指望 George Bush 来实现自己“成为百万富翁”的梦想一样。

由于我们正在谈论菜单,所以让我们谈谈“工具”菜单。最初,您将发现它似乎与 Visual Basic 的“工具”菜单毫无相同之处。可是一旦深入其中,您就会发现一组您想要熟悉的有用实用程序。花点时间研究一下注册表编辑器、控件管理器、文件查看器和缩放功能。其余的工具更多是为那些声称“我不在乎需要写多少行代码”并且整天忙于编码的 C++ 呆子准备的。就是阅读我的合作伙伴 John 的专栏的那类人。

SDK 不是令人讨厌的东西

如果您打算使用 eVB,就必须对 SDK 有所了解。在安装 eVB 的同时,最好安装一个或多个 Windows® CE 平台系统开发工具包 (SDK)。现在听起来要麻烦一些了。每个 SDK 都提供运行时、ActiveX® 控件和仿真器,以用于特定 Windows CE 平台。

毫无疑问,SDK 中最有趣的组件是仿真器。有了仿真器,您可以不必使用某种设备。您可以在自己的 PC 机中很方便地进行一切开发和测试工作。也就是说,和使用设备一样。移动一族有多酷!您还想费力地移动自己的台式 PC 吗?

移动设备游第一站

言归正传,现在该开始设计您的第一个 eVB 应用程序了。在本文的以下部分,我将带您经历构建您第一个 eVB 应用程序的全过程,并向您说明如何在仿真器和在某种设备上对它进行测试。

“嗨,eVB 很酷吧?”应用程序

您在本文中将构建的应用程序是流行又滥用的“Hello World”应用程序。该应用程序的特殊之处在于:它不仅显示文本“Hello World”,还会象一个小巧轻便的字幕板一样滚动消息。现在,我知道您在想什么。与传统的“Hello World”应用程序不同,该应用程序具有商业潜力。只需让用户输入一则消息,他们即可拥有自己的手持广告机制。假设您只将这个软件卖 10 块钱,那么只需售出 100,000 份副本,您就会成为百万富翁。不过,我想我会捷足先登。让我们继续创建该应用程序。

开始一个新工程

要执行的第一个步骤就是创建一个新工程。为此,您可以执行以下步骤:

  1. 启动 eVB。显示“新工程”对话框。

  2. 选择“Windows CE for the Pocket PC”模板,然后单击“打开”按钮。

将创建一个新工程并将该工程加载到 eVB 设计环境。

构建界面

使用“窗体”窗口和“工具箱”构建用户界面,其中包括文本框、命令按钮、定时器控件,如下图所示。

图 1:“Hello World”的初始窗体

使用下表配置窗体和控件的属性。

对象属性
Form1  
- Name frmHelloWorld
- Caption Hello World
Text1  
- Name txtDisplay
- BackColor Black
- Font Tahoma 22
- ForeColor Green
- Height 675
- Left 60
- Text (空字符串)
- Top 180
- Width 3375
Command1  
- Name cmdChangeDirection
- Caption 改变方向
- Height 255
- Left 60
- Top 960
- Width 3375
Timer1  
- Name ceTimer
- Enabled False
- Interval 200

添加代码

在“工程”窗口中,选择 Project1。在“属性”窗口中,将“名称”更改为“HelloWorld”。

打开窗体模块的“代码”窗口。在模块的“一般声明”部分添加以下代码行:

Dim strDirection As String
Dim strMessage As String
Dim strTemp As String

变量 strDirection 将用于跟踪字幕滚动的方向。变量 strMessage 将用于保存在滚动字幕显示区显示的消息。变量 strTemp 用于处理在字幕中显示的消息。

在 Form Load 事件过程中插入以下代码:

Private Sub Form_Load()
' 初始化变量。
  strDirection = "向前"
  strMessage = "嗨,eVB 很酷吧?"
  strTemp = String(30, Asc(" ")) & strMessage
  
' 启动字幕。
  ceTimer.Enabled = True
End Sub

该代码首先初始化该程序自始至终使用的三个字符串变量,然后打开定时器控件,定时器控件继而运行字幕。

在定时器控件的 Timer 事件过程中插入以下代码:

Private Sub ceTimer_Timer()
' 根据滚动的方向,将该
' 字符串最左边或最右边的字符
' 取走并将其附加到相反的一端。
  If (strDirection = "向前") Then
    strTemp = Right(strTemp, Len(strTemp) - 1) & _
              Mid(strTemp, 1, 1)
  Else
    strTemp = Right(strTemp, 1) & Mid(strTemp, 1, _
              Len(strTemp) - 1)
  End If
  
' 显示字符串,让人感觉
' 文本正在滚动。
  txtDisplay.Text = strTemp
  
End Sub

该代码首先确定字幕滚动的方向。然后,它使用 eVB 的 Right、Len 和 Mid 函数来处理显示的字符串,使该应用程序具有滚动字幕的外观。

在 cmdChangeDirection 控件的 Click 事件中插入以下代码。

Private Sub cmdChangeDirection_Click()
' 切换方向标记。
  Select Case strDirection
    Case "向前"
      strDirection = "向后"
    Case "向后"
      strDirection = "向前"
  End Select
End Sub

上述几行代码处理用于跟踪字幕滚动方向的标记切换。

这就是一个应用程序。您的第一个应用程序构建完毕。

在仿真器中测试您的应用程序

eVB 提供两种测试方法 - 在设备上或在仿真器中。仿真器在您的开发 PC 上运行,随 Pocket PC 和 H/PC Pro SDK 一起安装。通过这些仿真器,您无需使用设备即可测试自己的应用程序。仿真器也有一些缺点。在应用程序将如何在设备上运行这一方面,它们会误导您。PC 的运行速度比大多数设备都要快,而且还有一个数据输入键盘。另一个问题是仿真器只能在 Windows NT® 和 Windows 2000 下运行。

应用程序是在仿真器中运行还是在设备中运行,可通过“工程属性”对话框来控制。要将应用程序配置为在仿真器中运行,请执行以下步骤。

在“工程”菜单下,单击 HelloWorld 属性。如果“工程”菜单的底部没有 HelloWorld 属性选项,其原因是您没有按照本文前面所述的方法设置工程名。

此时会显示“工程属性”对话框,如下图所示。

图 2:“工程属性”对话框

使用“运行目标”组合框,选择“Pocket PC 仿真”。

“远程路径”配置将确定应用程序加载在仿真器上还是在连接的设备上。/Windows/Start Menu/ 的配置会使您的应用程序显示在目标环境的“开始”菜单中。

注意:Windows CE 的路径类似于 Windows 下的路径,只不过它们不包含驱动器盘符。

单击“确定”按钮,关闭“工程属性”对话框。

现在,您就可以在仿真器中运行自己的应用程序了。要启动您的应用程序,请执行以下步骤:

  1. 从“运行”菜单中单击“执行”。短暂的停顿之后,将启动 Pocket PC 仿真器,然后会加载并运行您的应用程序。

  2. 单击“改变方向”按钮,切换字幕滚动的方向。

  3. 单击位于正在仿真器中运行的应用程序右上角的“确定”按钮。应用程序将停止运行。

  4. 要关闭仿真器,单击仿真器左下角的黑色圆按钮。

    注意:如果您想在仿真器中反复进行测试(是的,我们只构建和测试一次),那么让仿真器在两次测试之间处于运行状态会更加简单快捷。

在设备上测试应用程序

要在设备上测试您的应用程序,请执行以下步骤:

  1. 确定 Pocket PC 已连接到了您的台式 PC,且通信正在进行。

  2. 在“工程”菜单下,选择 HelloWorld 属性。将显示“工程属性”对话框。

  3. 使用“在目标上运行”组合框,选择“Pocket PC(默认设备)”。

  4. 从“运行”菜单中,单击“执行”。短暂的停顿之后,Pocket PC 将随着复制到您设备上的 eVB 组件显示一系列对话框。然后,将加载并运行您的应用程序。

  5. 单击“改变方向”按钮,切换字幕滚动的方向。

  6. 单击正在设备上运行的应用程序右上角的“确定”按钮。应用程序将停止运行。

创建安装例程

好了,如果您想大量销售自己新创作的可滚动“Hello World”应用程序,最好创建一个安装例程。很幸运,eVB 带有“应用程序安装向导”,它会引导您完成创建安装例程的全过程。

接下来,我将陪您一起经历创建应用程序安装例程的全过程。

  1. 在 eVB 中的“工具”菜单下,依次选择“远程工具”和“应用程序安装向导”。显示向导的起始页。如果您愿意,阅读一下它的内容。如果您对接下来的事更感兴趣,只需继续进行步骤 2。

  2. 单击“下一步”按钮。在下一页中,输入 eVB 工程的路径。工程文件的扩展名为 .ebp。

  3. 单击“下一步”按钮。在下一页中,输入 eVB 应用程序文件的路径。您的应用程序文件就是您的程序。在 eVB 中,它们的扩展名为 .vb。如果您尚未创建应用程序,可以从 eVB 环境中创建一个应用程序文件,方法是选择“文件”菜单下的“制作”。

  4. 单击“下一步”按钮。在下一页中,输入要用来存放安装文件的目录路径。由于安装程序会创建多个文件和文件夹,所以最好不要将它同您的应用程序放在同一个文件夹中。

  5. 单击“下一步”按钮。在下一页中,选择应用程序将支持的处理器类型。此列表中显示的处理器类型取决于您在启动工程时指定的工程类型。例如,如果您是用 Pocket PC 模板启动的,则在此页中会看到四种处理器。

  6. 单击“下一步”按钮。在下一页中,选择要随应用程序一起安装的任何附加 ActiveX 控件或引用。通常,在此向导页中,除非您使用的 ActiveX 控件或引用不提供桌面组件,否则您不必作出任何选择。向导是智能的,它能从您的工程文件中搜集其余控件或引用。

  7. 单击“下一步”按钮。在下一页中,添加所有将随应用程序一起使用的附加文件。您可能想包括的文件通常有自述文档、空数据库文件以及其它辅助文件。

  8. 如果您的目标设备中已有设备运行时文件,则可以取消选择用于包括这些文件的选项。这样可以减小安装程序的大小。所有 Pocket PC 在 ROM 中都带有 eVB 运行时。

  9. 单击“下一步”按钮。在下一页中,输入适用于应用程序的安装信息。

  10. 单击“下一步”按钮。在下一页中,说明最终用户可以在安装过程中替换您在此处提供的安装目录。该目录将在目标设备上的 Program Files 文件夹下创建。

  11. 至此,您就可以创建安装了。单击“创建安装”按钮。当创建安装时,将显示许多命令窗口。创建完成后,该向导页的界面将发生更改,“完成”按钮变为可用。

  12. 单击“完成”按钮结束安装向导。向导将自动关闭。

应用程序安装向导创建的内容

完成应用程序安装向导之后,您将在指定向导使用的路径下发现许多文件和支持文件夹。其中大多数文件在生成安装例程时都使用过,因而无需发送给最终用户。

您只需将位于 CD1 目录中的文件发送给应用程序的最终用户。您还需要发送 Setup.exeSetup.ini 文件以及与用户的设备处理器类型相匹配的 .CAB 文件。

eVB 应用程序文件与处理器无关。也就是说,同一 .vb 文件可在任何目标设备上运行。其它文件(如 eVB 运行时文件和 ActiveX 控件)则与处理器有关。因此,每种独特的处理器都需要创建一个单独的 .CAB 文件。

您应该在相应的目标设备上测试每一种安装例程,以确认它能够正确安装您的应用程序。如果您在用于开发的设备上进行测试,那么应首先在该设备上执行硬重置,以便将每种设置恢复为出厂时的设置。这样,您就可以知道所安装的应用程序是否将在任何此类设备上正确运行。

这就是构建和测试 eVB 应用程序的整个过程。正如您所看到的那样,除使用仿真器和设备之外,使用 eVB 创建应用程序的过程与在 Visual Basic 中创建桌面应用程序的过程非常类似。

此路通向何方

如果此时您兴奋得无法入睡,请访问以下站点:

  • deVBuzz (www.deVBuzz.com):eVB 初学者入门的地方。

  • VBCE 新闻组 (microsoft.public.vb.vbce):eVB 开发人员聚集在一起交流想法、解决方案和编程趣事的地方。

返回原路

这就是本月的话题。现在,您可以离开此处,去构建一些很酷的 eVB 应用程序。然后,将您的最新作品以及您那纯熟的 eVB 技巧告诉我,我的地址是:lroof@tonked.com。几个星期后,不要忘了回到此处,访问 John 的专栏。让他告诉您在 eVC++ 中创建移动设备字幕“Hello World”应用程序用了多少行代码。不必惊讶,您将需要教会您的孙儿孙女们如何编码,让他们继续您此生未尽的事业。

到此为止吧。我已经戴上太阳镜,背上六听装的可口可乐,马上就要动身到阳光明媚的加州去冲浪,在那里,我将在下个月向您介绍如何使用带 Pocket Access 和 SQL Server CE 的 ADOCE。


0 0

相关博文

我的热门文章

img
取 消
img