用 eMbedded Visual Basic 編寫移動應用程序
發表時間:2023-08-02 來源:明輝站整理相關軟件相關文章人氣:
[摘要]本月,我從硅村(Silicon Village)這一移動應用程序開發的中心來到您的身邊。有些人可能不知道硅村,在此我特別介紹一下,硅村坐落于密歇根州的東南部,那里的大街上有每個正在彷徨的代碼員所尋求...
本月,我從硅村(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.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 技巧告訴我,我的地址是:
[email protected]。幾個星期后,不要忘了回到此處,訪問 John 的專欄。讓他告訴您在 eVC++ 中創建移動設備字幕“Hello World”應用程序用了多少行代碼。不必驚訝,您將需要教會您的孫兒孫女們如何編碼,讓他們繼續您此生未盡的事業。
到此為止吧。我已經戴上太陽鏡,背上六聽裝的可口可樂,馬上就要動身到陽光明媚的加州去沖浪,在那里,我將在下個月向您介紹如何使用帶 Pocket Access 和 SQL Server CE 的 ADOCE。