本月,我從硅村(Silicon Village)這一移動應(yīng)用程序開發(fā)的中心來到您的身邊。有些人可能不知道硅村,在此我特別介紹一下,硅村坐落于密歇根州的東南部,那里的大街上有每個正在彷徨的代碼員所尋求的東西 - 11MB 無線網(wǎng)絡(luò)連接。是的,您沒有聽錯,在任何地方都可以獲得 11 MB 的移動網(wǎng)絡(luò)。我并不是指在辦公室里。那是 eVC++ 移動應(yīng)用程序向往者的事。我指的是在大街上,在 eVB 人群轉(zhuǎn)悠的大街上。要到“賽百味”去吃午餐嗎?嗨,帶上您的 iPaq、PC 卡套和 Lucent 無線卡,您就可以在掌上訪問 Internet。您正在為錯過 eBay 上的 iPaq 大減價發(fā)愁嗎?在硅村,這不是問題,因為您始終在網(wǎng)上。
不過,您需要足夠的旅行指南。好了,如此說來,您已決定放棄自己舒適的辦公室生活,要滿腔熱情地面對危險,擁抱移動應(yīng)用程序開發(fā)員的生活方式了。我為您驕傲,同時也為您擔(dān)憂。擺在您面前的是流浪編碼員往來的新領(lǐng)域,這幫編碼員就像從連續(xù)劇“Mad Max”中走出來的人物,腰間掛滿了電子裝置。
您選擇的開發(fā)工具是 Microsoft 的 eMbedded Visual Basic? (eVB),利用它,您可以創(chuàng)建適合掌上設(shè)備的軟件杰作。
如果您是一個有經(jīng)驗的 Visual Basic 開發(fā)人員,那么對您來說,eVB 就象是一塊蛋糕,唔,也可能是小甜餅或小餅干之類的東西,不過肯定是甜的。
在本文中,我將帶領(lǐng)您經(jīng)歷創(chuàng)建您第一個 eVB 應(yīng)用程序的全過程。在您一頭扎進(jìn)使用 eVB 創(chuàng)建、編碼和測試應(yīng)用程序的工作之前,您將先學(xué)習(xí)需要了解的一切。
2001 eVB 之游
作為一個經(jīng)驗豐富的 Visual Basic 開發(fā)人員,一啟動 eVB,您就會發(fā)現(xiàn)其界面讓您有置身于家中的感覺。除了菜單有一些變化,工具欄上少了一些工具之外,其它一切都正如您想象的那樣。
盡管如此,我仍然需要指出幾個關(guān)鍵問題。第一個就是“工程”菜單。您可能會馬上注意到該菜單下的大多數(shù)命令都不見了。事實上,您在 Visual Basic 中該菜單下能看到的大多數(shù)命令在這里都沒有了。除窗體和標(biāo)準(zhǔn)模塊之外,類模塊、用戶控件、數(shù)據(jù)環(huán)境或所有其它組件都不再存在。您可能會問,“怎么會這樣?”答案非常簡單 - eVB 不支持它們。
此時,我要給大家提一項會讓最富經(jīng)驗的編碼員都覺得掃興的建議 - 閱讀 eVB 附帶的文檔。我知道,您肯定在想“噢,Roof,這太過分。別逼我。我寧愿在閑暇時間與用戶瞎混也不愿閱讀文檔。” 但在這件事上,您必須相信我。eVB 和 Visual Basic 之間存在許多差異,如果您不閱讀文檔,就會感到象是在指望 George Bush 來實現(xiàn)自己“成為百萬富翁”的夢想一樣。
由于我們正在談?wù)摬藛危宰屛覀冋務(wù)劇肮ぞ摺辈藛巍W畛酰鷮l(fā)現(xiàn)它似乎與 Visual Basic 的“工具”菜單毫無相同之處。可是一旦深入其中,您就會發(fā)現(xiàn)一組您想要熟悉的有用實用程序。花點時間研究一下注冊表編輯器、控件管理器、文件查看器和縮放功能。其余的工具更多是為那些聲稱“我不在乎需要寫多少行代碼”并且整天忙于編碼的 C++ 呆子準(zhǔn)備的。就是閱讀我的合作伙伴 John 的專欄的那類人。
SDK 不是令人討厭的東西
如果您打算使用 eVB,就必須對 SDK 有所了解。在安裝 eVB 的同時,最好安裝一個或多個 Windows? CE 平臺系統(tǒng)開發(fā)工具包 (SDK)。現(xiàn)在聽起來要麻煩一些了。每個 SDK 都提供運行時、ActiveX? 控件和仿真器,以用于特定 Windows CE 平臺。
毫無疑問,SDK 中最有趣的組件是仿真器。有了仿真器,您可以不必使用某種設(shè)備。您可以在自己的 PC 機(jī)中很方便地進(jìn)行一切開發(fā)和測試工作。也就是說,和使用設(shè)備一樣。移動一族有多酷!您還想費力地移動自己的臺式 PC 嗎?
移動設(shè)備游第一站
言歸正傳,現(xiàn)在該開始設(shè)計您的第一個 eVB 應(yīng)用程序了。在本文的以下部分,我將帶您經(jīng)歷構(gòu)建您第一個 eVB 應(yīng)用程序的全過程,并向您說明如何在仿真器和在某種設(shè)備上對它進(jìn)行測試。
“嗨,eVB 很酷吧?”應(yīng)用程序
您在本文中將構(gòu)建的應(yīng)用程序是流行又濫用的“Hello World”應(yīng)用程序。該應(yīng)用程序的特殊之處在于:它不僅顯示文本“Hello World”,還會象一個小巧輕便的字幕板一樣滾動消息。現(xiàn)在,我知道您在想什么。與傳統(tǒng)的“Hello World”應(yīng)用程序不同,該應(yīng)用程序具有商業(yè)潛力。只需讓用戶輸入一則消息,他們即可擁有自己的手持廣告機(jī)制。假設(shè)您只將這個軟件賣 10 塊錢,那么只需售出 100,000 份副本,您就會成為百萬富翁。不過,我想我會捷足先登。讓我們繼續(xù)創(chuàng)建該應(yīng)用程序。
開始一個新工程
要執(zhí)行的第一個步驟就是創(chuàng)建一個新工程。為此,您可以執(zhí)行以下步驟:
1、啟動 eVB。顯示“新工程”對話框。
2、選擇“Windows CE for the Pocket PC”模板,然后單擊“打開”按鈕。
將創(chuàng)建一個新工程并將該工程加載到 eVB 設(shè)計環(huán)境。
構(gòu)建界面
使用“窗體”窗口和“工具箱”構(gòu)建用戶界面,其中包括文本框、命令按鈕、定時器控件,如下圖所示。
圖 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 將用于保存在滾動字幕顯示區(qū)顯示的消息。變量 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() 注釋: 根據(jù)滾動的方向,將該 注釋: 字符串最左邊或最右邊的字符 注釋: 取走并將其附加到相反的一端。 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 函數(shù)來處理顯示的字符串,使該應(yīng)用程序具有滾動字幕的外觀。
在 cmdChangeDirection 控件的 Click 事件中插入以下代碼。
Private Sub cmdChangeDirection_Click() 注釋: 切換方向標(biāo)記。 Select Case strDirection Case "向前" strDirection = "向后" Case "向后" strDirection = "向前" End Select End Sub
上述幾行代碼處理用于跟蹤字幕滾動方向的標(biāo)記切換。
這就是一個應(yīng)用程序。您的第一個應(yīng)用程序構(gòu)建完畢。
在仿真器中測試您的應(yīng)用程序
eVB 提供兩種測試方法 - 在設(shè)備上或在仿真器中。仿真器在您的開發(fā) PC 上運行,隨 Pocket PC 和 H/PC Pro SDK 一起安裝。通過這些仿真器,您無需使用設(shè)備即可測試自己的應(yīng)用程序。仿真器也有一些缺點。在應(yīng)用程序?qū)⑷绾卧谠O(shè)備上運行這一方面,它們會誤導(dǎo)您。PC 的運行速度比大多數(shù)設(shè)備都要快,而且還有一個數(shù)據(jù)輸入鍵盤。另一個問題是仿真器只能在 Windows NT? 和 Windows 2000 下運行。
應(yīng)用程序是在仿真器中運行還是在設(shè)備中運行,可通過“工程屬性”對話框來控制。要將應(yīng)用程序配置為在仿真器中運行,請執(zhí)行以下步驟。
在“工程”菜單下,單擊 HelloWorld 屬性。如果“工程”菜單的底部沒有 HelloWorld 屬性選項,其原因是您沒有按照本文前面所述的方法設(shè)置工程名。
此時會顯示“工程屬性”對話框,如下圖所示。
圖 2:“工程屬性”對話框
使用“運行目標(biāo)”組合框,選擇“Pocket PC 仿真”。
“遠(yuǎn)程路徑”配置將確定應(yīng)用程序加載在仿真器上還是在連接的設(shè)備上。\Windows\Start Menu\ 的配置會使您的應(yīng)用程序顯示在目標(biāo)環(huán)境的“開始”菜單中。
注意:Windows CE 的路徑類似于 Windows 下的路徑,只不過它們不包含驅(qū)動器盤符。
單擊“確定”按鈕,關(guān)閉“工程屬性”對話框。
現(xiàn)在,您就可以在仿真器中運行自己的應(yīng)用程序了。要啟動您的應(yīng)用程序,請執(zhí)行以下步驟:
1、從“運行”菜單中單擊“執(zhí)行”。短暫的停頓之后,將啟動 Pocket PC 仿真器,然后會加載并運行您的應(yīng)用程序。
2、單擊“改變方向”按鈕,切換字幕滾動的方向。
3、單擊位于正在仿真器中運行的應(yīng)用程序右上角的“確定”按鈕。應(yīng)用程序?qū)⑼V惯\行。
4、要關(guān)閉仿真器,單擊仿真器左下角的黑色圓按鈕。
注意:如果您想在仿真器中反復(fù)進(jìn)行測試(是的,我們只構(gòu)建和測試一次),那么讓仿真器在兩次測試之間處于運行狀態(tài)會更加簡單快捷。
在設(shè)備上測試應(yīng)用程序
要在設(shè)備上測試您的應(yīng)用程序,請執(zhí)行以下步驟:
1、確定 Pocket PC 已連接到了您的臺式 PC,且通信正在進(jìn)行。
2、在“工程”菜單下,選擇 HelloWorld 屬性。將顯示“工程屬性”對話框。
3、使用“在目標(biāo)上運行”組合框,選擇“Pocket PC(默認(rèn)設(shè)備)”。
4、從“運行”菜單中,單擊“執(zhí)行”。短暫的停頓之后,Pocket PC 將隨著復(fù)制到您設(shè)備上的 eVB 組件顯示一系列對話框。然后,將加載并運行您的應(yīng)用程序。
5、單擊“改變方向”按鈕,切換字幕滾動的方向。
6、單擊正在設(shè)備上運行的應(yīng)用程序右上角的“確定”按鈕。應(yīng)用程序?qū)⑼V惯\行。
創(chuàng)建安裝例程
好了,如果您想大量銷售自己新創(chuàng)作的可滾動“Hello World”應(yīng)用程序,最好創(chuàng)建一個安裝例程。很幸運,eVB 帶有“應(yīng)用程序安裝向?qū)А保鼤龑?dǎo)您完成創(chuàng)建安裝例程的全過程。
接下來,我將陪您一起經(jīng)歷創(chuàng)建應(yīng)用程序安裝例程的全過程。
1、在 eVB 中的“工具”菜單下,依次選擇“遠(yuǎn)程工具”和“應(yīng)用程序安裝向?qū)А薄o@示向?qū)У钠鹗柬摗H绻敢猓喿x一下它的內(nèi)容。如果您對接下來的事更感興趣,只需繼續(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)建一個應(yīng)用程序文件,方法是選擇“文件”菜單下的“制作”。
4、單擊“下一步”按鈕。在下一頁中,輸入要用來存放安裝文件的目錄路徑。由于安裝程序會創(chuàng)建多個文件和文件夾,所以最好不要將它同您的應(yīng)用程序放在同一個文件夾中。
5、單擊“下一步”按鈕。在下一頁中,選擇應(yīng)用程序?qū)⒅С值奶幚砥黝愋汀4肆斜碇酗@示的處理器類型取決于您在啟動工程時指定的工程類型。例如,如果您是用 Pocket PC 模板啟動的,則在此頁中會看到四種處理器。
6、單擊“下一步”按鈕。在下一頁中,選擇要隨應(yīng)用程序一起安裝的任何附加 ActiveX 控件或引用。通常,在此向?qū)ы撝校悄褂玫?ActiveX 控件或引用不提供桌面組件,否則您不必作出任何選擇。向?qū)侵悄艿模軓哪墓こ涛募兴鸭溆嗫丶蛞谩?br> 7、單擊“下一步”按鈕。在下一頁中,添加所有將隨應(yīng)用程序一起使用的附加文件。您可能想包括的文件通常有自述文檔、空數(shù)據(jù)庫文件以及其它輔助文件。
8、如果您的目標(biāo)設(shè)備中已有設(shè)備運行時文件,則可以取消選擇用于包括這些文件的選項。這樣可以減小安裝程序的大小。所有 Pocket PC 在 ROM 中都帶有 eVB 運行時。
9、單擊“下一步”按鈕。在下一頁中,輸入適用于應(yīng)用程序的安裝信息。
10、單擊“下一步”按鈕。在下一頁中,說明最終用戶可以在安裝過程中替換您在此處提供的安裝目錄。該目錄將在目標(biāo)設(shè)備上的 Program Files 文件夾下創(chuàng)建。
11、至此,您就可以創(chuàng)建安裝了。單擊“創(chuàng)建安裝”按鈕。當(dāng)創(chuàng)建安裝時,將顯示許多命令窗口。創(chuàng)建完成后,該向?qū)ы摰慕缑鎸l(fā)生更改,“完成”按鈕變?yōu)榭捎谩?br> 12、單擊“完成”按鈕結(jié)束安裝向?qū)АO驅(qū)⒆詣雨P(guān)閉。
應(yīng)用程序安裝向?qū)?chuàng)建的內(nèi)容
完成應(yīng)用程序安裝向?qū)е螅鷮⒃谥付ㄏ驅(qū)褂玫穆窂较掳l(fā)現(xiàn)許多文件和支持文件夾。其中大多數(shù)文件在生成安裝例程時都使用過,因而無需發(fā)送給最終用戶。
您只需將位于 CD1 目錄中的文件發(fā)送給應(yīng)用程序的最終用戶。您還需要發(fā)送 Setup.exe 和 Setup.ini 文件以及與用戶的設(shè)備處理器類型相匹配的 .CAB 文件。
eVB 應(yīng)用程序文件與處理器無關(guān)。也就是說,同一 .vb 文件可在任何目標(biāo)設(shè)備上運行。其它文件(如 eVB 運行時文件和 ActiveX 控件)則與處理器有關(guān)。因此,每種獨特的處理器都需要創(chuàng)建一個單獨的 .CAB 文件。
您應(yīng)該在相應(yīng)的目標(biāo)設(shè)備上測試每一種安裝例程,以確認(rèn)它能夠正確安裝您的應(yīng)用程序。如果您在用于開發(fā)的設(shè)備上進(jìn)行測試,那么應(yīng)首先在該設(shè)備上執(zhí)行硬重置,以便將每種設(shè)置恢復(fù)為出廠時的設(shè)置。這樣,您就可以知道所安裝的應(yīng)用程序是否將在任何此類設(shè)備上正確運行。
這就是構(gòu)建和測試 eVB 應(yīng)用程序的整個過程。正如您所看到的那樣,除使用仿真器和設(shè)備之外,使用 eVB 創(chuàng)建應(yīng)用程序的過程與在 Visual Basic 中創(chuàng)建桌面應(yīng)用程序的過程非常類似。
此路通向何方
如果此時您興奮得無法入睡,請訪問以下站點:
deVBuzz (www.deVBuzz.com):eVB 初學(xué)者入門的地方。
VBCE 新聞組 (microsoft.public.vb.vbce):eVB 開發(fā)人員聚集在一起交流想法、解決方案和編程趣事的地方。
返回原路
這就是本月的話題。現(xiàn)在,您可以離開此處,去構(gòu)建一些很酷的 eVB 應(yīng)用程序。然后,將您的最新作品以及您那純熟的 eVB 技巧告訴我,我的地址是:lroof@tonked.com。幾個星期后,不要忘了回到此處,訪問 John 的專欄。讓他告訴您在 eVC++ 中創(chuàng)建移動設(shè)備字幕“Hello World”應(yīng)用程序用了多少行代碼。不必驚訝,您將需要教會您的孫兒孫女們?nèi)绾尉幋a,讓他們繼續(xù)您此生未盡的事業(yè)。
到此為止吧。我已經(jīng)戴上太陽鏡,背上六聽裝的可口可樂,馬上就要動身到陽光明媚的加州去沖浪,在那里,我將在下個月向您介紹如何使用帶 Pocket Access 和 SQL Server CE 的 ADOCE。
|