明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

用 eMbedded Visual Basic 編寫移動(dòng)應(yīng)用程序

[摘要]本月,我從硅村(Silicon Village)這一移動(dòng)應(yīng)用程序開發(fā)的中心來到您的身邊。有些人可能不知道硅村,在此我特別介紹一下,硅村坐落于密歇根州的東南部,那里的大街上有每個(gè)正在彷徨的代碼員所尋求...
本月,我從硅村(Silicon Village)這一移動(dòng)應(yīng)用程序開發(fā)的中心來到您的身邊。有些人可能不知道硅村,在此我特別介紹一下,硅村坐落于密歇根州的東南部,那里的大街上有每個(gè)正在彷徨的代碼員所尋求的東西 - 11MB 無線網(wǎng)絡(luò)連接。是的,您沒有聽錯(cuò),在任何地方都可以獲得 11 MB 的移動(dòng)網(wǎng)絡(luò)。我并不是指在辦公室里。那是 eVC++ 移動(dòng)應(yīng)用程序向往者的事。我指的是在大街上,在 eVB 人群轉(zhuǎn)悠的大街上。要到“賽百味”去吃午餐嗎?嗨,帶上您的 iPaq、PC 卡套和 Lucent 無線卡,您就可以在掌上訪問 Internet。您正在為錯(cuò)過 eBay 上的 iPaq 大減價(jià)發(fā)愁嗎?在硅村,這不是問題,因?yàn)槟冀K在網(wǎng)上。

  不過,您需要足夠的旅行指南。好了,如此說來,您已決定放棄自己舒適的辦公室生活,要滿腔熱情地面對(duì)危險(xiǎn),擁抱移動(dòng)應(yīng)用程序開發(fā)員的生活方式了。我為您驕傲,同時(shí)也為您擔(dān)憂。擺在您面前的是流浪編碼員往來的新領(lǐng)域,這幫編碼員就像從連續(xù)劇“Mad Max”中走出來的人物,腰間掛滿了電子裝置。

  您選擇的開發(fā)工具是 Microsoft 的 eMbedded Visual Basic? (eVB),利用它,您可以創(chuàng)建適合掌上設(shè)備的軟件杰作。

  如果您是一個(gè)有經(jīng)驗(yàn)的 Visual Basic 開發(fā)人員,那么對(duì)您來說,eVB 就象是一塊蛋糕,唔,也可能是小甜餅或小餅干之類的東西,不過肯定是甜的。

  在本文中,我將帶領(lǐng)您經(jīng)歷創(chuàng)建您第一個(gè) eVB 應(yīng)用程序的全過程。在您一頭扎進(jìn)使用 eVB 創(chuàng)建、編碼和測(cè)試應(yīng)用程序的工作之前,您將先學(xué)習(xí)需要了解的一切。

  2001 eVB 之游

  作為一個(gè)經(jīng)驗(yàn)豐富的 Visual Basic 開發(fā)人員,一啟動(dòng) eVB,您就會(huì)發(fā)現(xiàn)其界面讓您有置身于家中的感覺。除了菜單有一些變化,工具欄上少了一些工具之外,其它一切都正如您想象的那樣。

  盡管如此,我仍然需要指出幾個(gè)關(guān)鍵問題。第一個(gè)就是“工程”菜單。您可能會(huì)馬上注意到該菜單下的大多數(shù)命令都不見了。事實(shí)上,您在 Visual Basic 中該菜單下能看到的大多數(shù)命令在這里都沒有了。除窗體和標(biāo)準(zhǔn)模塊之外,類模塊、用戶控件、數(shù)據(jù)環(huán)境或所有其它組件都不再存在。您可能會(huì)問,“怎么會(huì)這樣?”答案非常簡(jiǎn)單 - eVB 不支持它們。

  此時(shí),我要給大家提一項(xiàng)會(huì)讓最富經(jīng)驗(yàn)的編碼員都覺得掃興的建議 - 閱讀 eVB 附帶的文檔。我知道,您肯定在想“噢,Roof,這太過分。別逼我。我寧愿在閑暇時(shí)間與用戶瞎混也不愿閱讀文檔。” 但在這件事上,您必須相信我。eVB 和 Visual Basic 之間存在許多差異,如果您不閱讀文檔,就會(huì)感到象是在指望 George Bush 來實(shí)現(xiàn)自己“成為百萬富翁”的夢(mèng)想一樣。

  由于我們正在談?wù)摬藛,所以讓我們談(wù)劇肮ぞ摺辈藛巍W畛,您將發(fā)現(xiàn)它似乎與 Visual Basic 的“工具”菜單毫無相同之處?墒且坏┥钊肫渲,您就會(huì)發(fā)現(xiàn)一組您想要熟悉的有用實(shí)用程序;c(diǎn)時(shí)間研究一下注冊(cè)表編輯器、控件管理器、文件查看器和縮放功能。其余的工具更多是為那些聲稱“我不在乎需要寫多少行代碼”并且整天忙于編碼的 C++ 呆子準(zhǔn)備的。就是閱讀我的合作伙伴 John 的專欄的那類人。

  SDK 不是令人討厭的東西

  如果您打算使用 eVB,就必須對(duì) SDK 有所了解。在安裝 eVB 的同時(shí),最好安裝一個(gè)或多個(gè) Windows? CE 平臺(tái)系統(tǒng)開發(fā)工具包 (SDK),F(xiàn)在聽起來要麻煩一些了。每個(gè) SDK 都提供運(yùn)行時(shí)、ActiveX? 控件和仿真器,以用于特定 Windows CE 平臺(tái)。

  毫無疑問,SDK 中最有趣的組件是仿真器。有了仿真器,您可以不必使用某種設(shè)備。您可以在自己的 PC 機(jī)中很方便地進(jìn)行一切開發(fā)和測(cè)試工作。也就是說,和使用設(shè)備一樣。移動(dòng)一族有多酷!您還想費(fèi)力地移動(dòng)自己的臺(tái)式 PC 嗎?

  移動(dòng)設(shè)備游第一站

  言歸正傳,現(xiàn)在該開始設(shè)計(jì)您的第一個(gè) eVB 應(yīng)用程序了。在本文的以下部分,我將帶您經(jīng)歷構(gòu)建您第一個(gè) eVB 應(yīng)用程序的全過程,并向您說明如何在仿真器和在某種設(shè)備上對(duì)它進(jìn)行測(cè)試。

  “嗨,eVB 很酷吧?”應(yīng)用程序

  您在本文中將構(gòu)建的應(yīng)用程序是流行又濫用的“Hello World”應(yīng)用程序。該應(yīng)用程序的特殊之處在于:它不僅顯示文本“Hello World”,還會(huì)象一個(gè)小巧輕便的字幕板一樣滾動(dòng)消息。現(xiàn)在,我知道您在想什么。與傳統(tǒng)的“Hello World”應(yīng)用程序不同,該應(yīng)用程序具有商業(yè)潛力。只需讓用戶輸入一則消息,他們即可擁有自己的手持廣告機(jī)制。假設(shè)您只將這個(gè)軟件賣 10 塊錢,那么只需售出 100,000 份副本,您就會(huì)成為百萬富翁。不過,我想我會(huì)捷足先登。讓我們繼續(xù)創(chuàng)建該應(yīng)用程序。


開始一個(gè)新工程

  要執(zhí)行的第一個(gè)步驟就是創(chuàng)建一個(gè)新工程。為此,您可以執(zhí)行以下步驟:

   1、啟動(dòng) eVB。顯示“新工程”對(duì)話框。

   2、選擇“Windows CE for the Pocket PC”模板,然后單擊“打開”按鈕。

  將創(chuàng)建一個(gè)新工程并將該工程加載到 eVB 設(shè)計(jì)環(huán)境。

  構(gòu)建界面

  使用“窗體”窗口和“工具箱”構(gòu)建用戶界面,其中包括文本框、命令按鈕、定時(shí)器控件,如下圖所示。


圖 1:“Hello World”的初始窗體  

  使用下表配置窗體和控件的屬性。

對(duì)象 - 屬性 值  
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 將用于跟蹤字幕滾動(dòng)的方向。變量 strMessage 將用于保存在滾動(dòng)字幕顯示區(qū)顯示的消息。變量 strTemp 用于處理在字幕中顯示的消息。

  在 Form Load 事件過程中插入以下代碼:

Private Sub Form_Load()
 注釋: 初始化變量。
 strDirection = "向前"
 strMessage = "嗨,eVB 很酷吧?"
 strTemp = String(30, Asc(" ")) & strMessage

 注釋: 啟動(dòng)字幕。
 ceTimer.Enabled = True
End Sub

  該代碼首先初始化該程序自始至終使用的三個(gè)字符串變量,然后打開定時(shí)器控件,定時(shí)器控件繼而運(yùn)行字幕。

  在定時(shí)器控件的 Timer 事件過程中插入以下代碼:

Private Sub ceTimer_Timer()
 注釋: 根據(jù)滾動(dòng)的方向,將該
 注釋: 字符串最左邊或最右邊的字符
 注釋: 取走并將其附加到相反的一端。
 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

 注釋: 顯示字符串,讓人感覺
 注釋: 文本正在滾動(dòng)。
 txtDisplay.Text = strTemp

End Sub

  該代碼首先確定字幕滾動(dòng)的方向。然后,它使用 eVB 的 Right、Len 和 Mid 函數(shù)來處理顯示的字符串,使該應(yīng)用程序具有滾動(dòng)字幕的外觀。

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

Private Sub cmdChangeDirection_Click()
 注釋: 切換方向標(biāo)記。
 Select Case strDirection
  Case "向前"
   strDirection = "向后"
  Case "向后"
   strDirection = "向前"
 End Select
End Sub

  上述幾行代碼處理用于跟蹤字幕滾動(dòng)方向的標(biāo)記切換。

  這就是一個(gè)應(yīng)用程序。您的第一個(gè)應(yīng)用程序構(gòu)建完畢。





  在仿真器中測(cè)試您的應(yīng)用程序

  eVB 提供兩種測(cè)試方法 - 在設(shè)備上或在仿真器中。仿真器在您的開發(fā) PC 上運(yùn)行,隨 Pocket PC 和 H/PC Pro SDK 一起安裝。通過這些仿真器,您無需使用設(shè)備即可測(cè)試自己的應(yīng)用程序。仿真器也有一些缺點(diǎn)。在應(yīng)用程序?qū)⑷绾卧谠O(shè)備上運(yùn)行這一方面,它們會(huì)誤導(dǎo)您。PC 的運(yùn)行速度比大多數(shù)設(shè)備都要快,而且還有一個(gè)數(shù)據(jù)輸入鍵盤。另一個(gè)問題是仿真器只能在 Windows NT? 和 Windows 2000 下運(yùn)行。

  應(yīng)用程序是在仿真器中運(yùn)行還是在設(shè)備中運(yùn)行,可通過“工程屬性”對(duì)話框來控制。要將應(yīng)用程序配置為在仿真器中運(yùn)行,請(qǐng)執(zhí)行以下步驟。

  在“工程”菜單下,單擊 HelloWorld 屬性。如果“工程”菜單的底部沒有 HelloWorld 屬性選項(xiàng),其原因是您沒有按照本文前面所述的方法設(shè)置工程名。

  此時(shí)會(huì)顯示“工程屬性”對(duì)話框,如下圖所示。


      圖 2:“工程屬性”對(duì)話框  

  使用“運(yùn)行目標(biāo)”組合框,選擇“Pocket PC 仿真”。

  “遠(yuǎn)程路徑”配置將確定應(yīng)用程序加載在仿真器上還是在連接的設(shè)備上。\Windows\Start Menu\ 的配置會(huì)使您的應(yīng)用程序顯示在目標(biāo)環(huán)境的“開始”菜單中。

  注意:Windows CE 的路徑類似于 Windows 下的路徑,只不過它們不包含驅(qū)動(dòng)器盤符。

  單擊“確定”按鈕,關(guān)閉“工程屬性”對(duì)話框。

  現(xiàn)在,您就可以在仿真器中運(yùn)行自己的應(yīng)用程序了。要啟動(dòng)您的應(yīng)用程序,請(qǐng)執(zhí)行以下步驟:

   1、從“運(yùn)行”菜單中單擊“執(zhí)行”。短暫的停頓之后,將啟動(dòng) Pocket PC 仿真器,然后會(huì)加載并運(yùn)行您的應(yīng)用程序。

   2、單擊“改變方向”按鈕,切換字幕滾動(dòng)的方向。

   3、單擊位于正在仿真器中運(yùn)行的應(yīng)用程序右上角的“確定”按鈕。應(yīng)用程序?qū)⑼V惯\(yùn)行。

   4、要關(guān)閉仿真器,單擊仿真器左下角的黑色圓按鈕。

   注意:如果您想在仿真器中反復(fù)進(jìn)行測(cè)試(是的,我們只構(gòu)建和測(cè)試一次),那么讓仿真器在兩次測(cè)試之間處于運(yùn)行狀態(tài)會(huì)更加簡(jiǎn)單快捷。

  在設(shè)備上測(cè)試應(yīng)用程序

  要在設(shè)備上測(cè)試您的應(yīng)用程序,請(qǐng)執(zhí)行以下步驟:

   1、確定 Pocket PC 已連接到了您的臺(tái)式 PC,且通信正在進(jìn)行。

   2、在“工程”菜單下,選擇 HelloWorld 屬性。將顯示“工程屬性”對(duì)話框。

   3、使用“在目標(biāo)上運(yùn)行”組合框,選擇“Pocket PC(默認(rèn)設(shè)備)”。

   4、從“運(yùn)行”菜單中,單擊“執(zhí)行”。短暫的停頓之后,Pocket PC 將隨著復(fù)制到您設(shè)備上的 eVB 組件顯示一系列對(duì)話框。然后,將加載并運(yùn)行您的應(yīng)用程序。

   5、單擊“改變方向”按鈕,切換字幕滾動(dòng)的方向。

   6、單擊正在設(shè)備上運(yùn)行的應(yīng)用程序右上角的“確定”按鈕。應(yīng)用程序?qū)⑼V惯\(yùn)行。




  創(chuàng)建安裝例程

  好了,如果您想大量銷售自己新創(chuàng)作的可滾動(dòng)“Hello World”應(yīng)用程序,最好創(chuàng)建一個(gè)安裝例程。很幸運(yùn),eVB 帶有“應(yīng)用程序安裝向?qū)А保鼤?huì)引導(dǎo)您完成創(chuàng)建安裝例程的全過程。

  接下來,我將陪您一起經(jīng)歷創(chuàng)建應(yīng)用程序安裝例程的全過程。

   1、在 eVB 中的“工具”菜單下,依次選擇“遠(yuǎn)程工具”和“應(yīng)用程序安裝向?qū)А。顯示向?qū)У钠鹗柬。如果您愿意,閱讀一下它的內(nèi)容。如果您對(duì)接下來的事更感興趣,只需繼續(xù)進(jìn)行步驟 2。

   2、單擊“下一步”按鈕。在下一頁中,輸入 eVB 工程的路徑。工程文件的擴(kuò)展名為 .ebp。

   3、單擊“下一步”按鈕。在下一頁中,輸入 eVB 應(yīng)用程序文件的路徑。您的應(yīng)用程序文件就是您的程序。在 eVB 中,它們的擴(kuò)展名為 .vb。如果您尚未創(chuàng)建應(yīng)用程序,可以從 eVB 環(huán)境中創(chuàng)建一個(gè)應(yīng)用程序文件,方法是選擇“文件”菜單下的“制作”。

   4、單擊“下一步”按鈕。在下一頁中,輸入要用來存放安裝文件的目錄路徑。由于安裝程序會(huì)創(chuàng)建多個(gè)文件和文件夾,所以最好不要將它同您的應(yīng)用程序放在同一個(gè)文件夾中。

   5、單擊“下一步”按鈕。在下一頁中,選擇應(yīng)用程序?qū)⒅С值奶幚砥黝愋。此列表中顯示的處理器類型取決于您在啟動(dòng)工程時(shí)指定的工程類型。例如,如果您是用 Pocket PC 模板啟動(dòng)的,則在此頁中會(huì)看到四種處理器。

   6、單擊“下一步”按鈕。在下一頁中,選擇要隨應(yīng)用程序一起安裝的任何附加 ActiveX 控件或引用。通常,在此向?qū)ы撝,除非您使用?ActiveX 控件或引用不提供桌面組件,否則您不必作出任何選擇。向?qū)侵悄艿,它能從您的工程文件中搜集其余控件或引用?br>
   7、單擊“下一步”按鈕。在下一頁中,添加所有將隨應(yīng)用程序一起使用的附加文件。您可能想包括的文件通常有自述文檔、空數(shù)據(jù)庫(kù)文件以及其它輔助文件。

   8、如果您的目標(biāo)設(shè)備中已有設(shè)備運(yùn)行時(shí)文件,則可以取消選擇用于包括這些文件的選項(xiàng)。這樣可以減小安裝程序的大小。所有 Pocket PC 在 ROM 中都帶有 eVB 運(yùn)行時(shí)。

   9、單擊“下一步”按鈕。在下一頁中,輸入適用于應(yīng)用程序的安裝信息。

   10、單擊“下一步”按鈕。在下一頁中,說明最終用戶可以在安裝過程中替換您在此處提供的安裝目錄。該目錄將在目標(biāo)設(shè)備上的 Program Files 文件夾下創(chuàng)建。

   11、至此,您就可以創(chuàng)建安裝了。單擊“創(chuàng)建安裝”按鈕。當(dāng)創(chuàng)建安裝時(shí),將顯示許多命令窗口。創(chuàng)建完成后,該向?qū)ы摰慕缑鎸l(fā)生更改,“完成”按鈕變?yōu)榭捎谩?br>
   12、單擊“完成”按鈕結(jié)束安裝向?qū)АO驅(qū)⒆詣?dòng)關(guān)閉。

  應(yīng)用程序安裝向?qū)?chuàng)建的內(nèi)容

  完成應(yīng)用程序安裝向?qū)е,您將在指定向(qū)褂玫穆窂较掳l(fā)現(xiàn)許多文件和支持文件夾。其中大多數(shù)文件在生成安裝例程時(shí)都使用過,因而無需發(fā)送給最終用戶。

  您只需將位于 CD1 目錄中的文件發(fā)送給應(yīng)用程序的最終用戶。您還需要發(fā)送 Setup.exe 和 Setup.ini 文件以及與用戶的設(shè)備處理器類型相匹配的 .CAB 文件。

  eVB 應(yīng)用程序文件與處理器無關(guān)。也就是說,同一 .vb 文件可在任何目標(biāo)設(shè)備上運(yùn)行。其它文件(如 eVB 運(yùn)行時(shí)文件和 ActiveX 控件)則與處理器有關(guān)。因此,每種獨(dú)特的處理器都需要?jiǎng)?chuàng)建一個(gè)單獨(dú)的 .CAB 文件。

  您應(yīng)該在相應(yīng)的目標(biāo)設(shè)備上測(cè)試每一種安裝例程,以確認(rèn)它能夠正確安裝您的應(yīng)用程序。如果您在用于開發(fā)的設(shè)備上進(jìn)行測(cè)試,那么應(yīng)首先在該設(shè)備上執(zhí)行硬重置,以便將每種設(shè)置恢復(fù)為出廠時(shí)的設(shè)置。這樣,您就可以知道所安裝的應(yīng)用程序是否將在任何此類設(shè)備上正確運(yùn)行。

  這就是構(gòu)建和測(cè)試 eVB 應(yīng)用程序的整個(gè)過程。正如您所看到的那樣,除使用仿真器和設(shè)備之外,使用 eVB 創(chuàng)建應(yīng)用程序的過程與在 Visual Basic 中創(chuàng)建桌面應(yīng)用程序的過程非常類似。

  此路通向何方

  如果此時(shí)您興奮得無法入睡,請(qǐng)?jiān)L問以下站點(diǎn):

  deVBuzz (www.deVBuzz.com):eVB 初學(xué)者入門的地方。

  VBCE 新聞組 (microsoft.public.vb.vbce):eVB 開發(fā)人員聚集在一起交流想法、解決方案和編程趣事的地方。

  返回原路

  這就是本月的話題,F(xiàn)在,您可以離開此處,去構(gòu)建一些很酷的 eVB 應(yīng)用程序。然后,將您的最新作品以及您那純熟的 eVB 技巧告訴我,我的地址是:lroof@tonked.com。幾個(gè)星期后,不要忘了回到此處,訪問 John 的專欄。讓他告訴您在 eVC++ 中創(chuàng)建移動(dòng)設(shè)備字幕“Hello World”應(yīng)用程序用了多少行代碼。不必驚訝,您將需要教會(huì)您的孫兒孫女們?nèi)绾尉幋a,讓他們繼續(xù)您此生未盡的事業(yè)。

  到此為止吧。我已經(jīng)戴上太陽鏡,背上六聽裝的可口可樂,馬上就要?jiǎng)由淼疥柟饷髅牡募又萑_浪,在那里,我將在下個(gè)月向您介紹如何使用帶 Pocket Access 和 SQL Server CE 的 ADOCE。