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

发表于:2007-07-14来源:作者:点击数: 标签:
本月,我从硅村(Silicon Village)这一移动应用程序 开发 的中心来到您的身边。有些人可能不知道硅村,在此我特别介绍一下,硅村坐落于密歇根州的东南部,那里的大街上有每个正在彷徨的代码员所寻求的东西 - 11MB 无线 网络 连接。是的,您没有听错,在任
  本月,我从硅村(Silicon Village)这一移动应用程序开发的中心来到您的身边。有些人可能不知道硅村,在此我特别介绍一下,硅村坐落于密歇根州的东南部,那里的大街上有每个正在彷徨的代码员所寻求的东西 - 11MB 无线网络连接。是的,您没有听错,在任何地方都可以获得 11 MB 的移动网络。我并不是指在办公室里。那是 eVC++ 移动应用程序向往者的事。我指的是在大街上,在 eVB 人群转悠的大街上。要到“赛百味”去吃午餐吗?嗨,带上您的 iPaq、PC 卡套和 Lucent 无线卡,您就可以在掌上访问 Inte.net。您正在为错过 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.exe 和 Setup.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 Aclearcase/" target="_blank" >ccess 和 SQL Server CE 的 ADOCE。

原文转自:http://www.ltesting.net