国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
制作VB安裝程序問答(一)
制作VB安裝程序問答(一)

  制作安裝程序往往是程序設(shè)計的最后一步,同時也是重要的一步,因為運行安裝程序往往是用戶的第一個操作。有不少讀者詢問這方面的問題,《答疑解惑》將分兩期介紹一些制作Visual Basic安裝程序時常遇到問題的解決方法。

  問題:假如我用VB 5開發(fā)的程序很簡單,只用到了 ShellExecute()這個API函數(shù)及Command Button,我能不能不做安裝盤,使其在所有客戶機上(Win 95/98/NT)都能正常使用?如不制作安裝程序,與EXE放在一起的應(yīng)該包括哪些文件?

  

  答:對于一個非常簡單的VB 5程序,沒有使用額外的OCX控件,在Win 98/2000下是可以正常運行的(不需要制作安裝盤)。因為Win 98/2000帶有VB 5程序所需要的DLL文件。但在Win 95/NT 4.0下一般是不行的,因為缺少必要的文件。如果用戶的機器上安裝有IE 4.0/5.0,那么應(yīng)該也是可以不制作安裝盤的。在一般情況下,不制作安裝盤就不能保證程序的正確運行。

  你制作的安裝盤所包括的DLL中,除了Vb5stkit.dll只是安裝時使用、安裝后就不需要了,其它DLL都是不可缺少的。雖然對于某些機器而言,由于安裝過其它軟件,可能不需要某個DLL,但要想在所有的機器上都能正確運行,一個文件都不能少。所以為了避免由于缺少某個文件或注冊不正確而使程序無法運行,我建議你還是制作安裝盤比較保險。

  如果你的程序是放在網(wǎng)上供別人下載的,為了減少下載文件的大小,可以這樣做:將你的程序單獨打成一個包,如果用戶已經(jīng)有了運行VB 5程序所需要的有關(guān)文件,就只需下載你的程序;然后,在網(wǎng)頁上提供一個VB 5的運行時間庫的鏈接(如http://download.microsoft.com/download/vb50pro/utility/1/win98/EN-US/Msvbvm50.exe),如果用戶的機器上沒有這些文件,則讓他單獨下載運行庫。這是一種比較通行的方法。

  

  問題:若在一個程序中使用了其它控件, 如何在沒有注冊該控件的機器上運行, 是不是一定要制作安裝程序或注冊該控件呢?

  答:在Win 95/98下,如果你的控件和EXE文件在同一個目錄中,或者控件文件放置在System目錄中,EXE程序運行時會自動找到所需要的OCX文件并注冊。但是這種方法在Win NT下不適用,NT下必須先注冊控件才能保證EXE文件的正常運行。另外,這種自動注冊有一些毛病,如果機器已經(jīng)存在一個低版本的控件,自動注冊可能會失敗。所以,如果你希望自己的程序能夠非常好地工作,最好還是制作安裝程序,否則可能會有麻煩。

  

  問題:請介紹一下如何利用VB 6給自己的軟件加上像商業(yè)軟件一樣的卸載功能?

  

  答:VB 6的安裝向?qū)е谱鞯陌惭b程序本身包括卸載功能,不過這個功能并不出現(xiàn)在“開始”選單中。安裝后,要進行卸載工作,可以打開“控制面板”,點擊“安裝/刪除程序”圖標,然后選擇想要卸載的軟件。

    如果希望在選單中添加卸載程序選項,可以在制作安裝程序包時加入相應(yīng)的程序項。VB 6的“Package & Deployment 向?qū)?#8221;支持安裝程序創(chuàng)建自己的程序組和選單項。在“Package & Deployment 向?qū)?#8221;的“啟動選單項”一步(圖1),選擇“新建項”按鈕,此時會出現(xiàn)一個對話框。在對話框的 “名稱”文本框中輸入選單項的名稱,如“卸載VBTerm”。在“目標”框中輸入卸載項的命令為:$(WinPath)st6unst.exe -n ″$(AppPath)ST6UNST.LOG″ 。然后選擇確定關(guān)閉該對話框。這樣生成的安裝程序中將包括一個卸載程序的選單項。

  圖1 在啟動選單項中添加一個卸載項

  問題:本人用VB 6.0制作了一個程序,但在某個機器上安裝時,會出現(xiàn)以下錯誤:

  1. “system error &H80004005(02147467259)未指定錯誤”

  2.“can not found ′c:windows empmsftqws.pdwst6unst.ext′”

  3.無法開始系統(tǒng)安裝程序。

  請問原因?    

  

  答:這是由于VB 6的一個Bug導致的,你可以升級到VB 6 SP3(從http://msdn.microsoft.com/vstudio/sp/default.asp下載),在這個升級版本中修復了這個錯誤。

  

  問題:本人用VB 6制作了一個程序,但在安裝該軟件時系統(tǒng)報告:

  錯誤: 在′C:WINDOWSSYSTEMeXPsrv.dll′中未發(fā)現(xiàn)DllRegisterServer() 的WINDOWSSYSTEMexpsrv.dll″輸入點;在本操作期間: DllSelfRegister: ″C:;錯誤: 注冊文件 ′C:WINDOWSSYSTEMexpsrv.dll′時出錯;錯誤: (用戶響應(yīng)′忽略′)。

  忽略錯誤后安裝完成。在Windows 98下安裝也有同樣的問題。

  

  答:DLL有兩種,一種是標準DLL,另一種是ActiveX DLL。前者拷貝到用戶機器上就可以工作了,而后者還需要調(diào)用DLL中的DllRegisterServer或者使用RegSvr32進行注冊才能使用。你可以打開VB98WizardsPDWizardVB6dep.ini文件。下面是這個文件的片斷:

  [ExpSrv.dll]

  Dest=$(WinSysPathSysFile)

  CABFileName=MSJet35.cab

  CABDefaultURL=http://activex.microsoft.com/controls/vb6

  CABINFFile=MSJet35.inf

  [MSRD2x35.dll]

  Dest=$(WinSysPathSysFile)

  Register=$(DLLSelfRegister)

  CABFileName=MSJet35.cab

  CABDefaultURL=http://activex.microsoft.com/controls/vb6

  CABINFFile=MSJet35.inf

  

  可以看到MSRD2x35.dll比ExpSrv.dll多一行Register=$(DLLSelfRegister),這是因為MSRD2x35.dll是ActiveX DLL。ExpSrv.dll是普通的DLL,沒有DllRegisterServer,也用不著注冊。你所遇到的問題是VB 6的一個Bug(在VB 6 SP3中已經(jīng)修復)。如果你的VB6dep.ini文件的ExpSrv.dll多了Register一行,應(yīng)該刪除?;蛘叽蜷_安裝程序的Setup.lst,刪除其中ExpSrv.dll一行中的“$(DLLSelfRegister)”字樣。

  

  問題:我在做成安裝文件后,安裝過程中系統(tǒng)缺省的目錄是C:Program FilesTele,而我需要的是C:Tele2000,請問有辦法修改嗎?

  

  答:要修改安裝程序的缺省目錄,可以打開安裝盤的Setup.lst文件,在這個文件中可以找到下面一行:

  DefaultDir=$(ProgramFiles) ele

  將這行中的“$(ProgramFiles) ele”修改為你想要的目錄(如C:Tele2000)就可以了。

  

  問題:用VB 5的安裝向?qū)е谱鞯某绦虬惭b包里,總有一個.dep文件,請問這個文件有什么用?是否與OCX注冊有關(guān)?如何打開?如何編輯?

  

  答:只有當你為ActiveX控件制作安裝包的時候,才會出現(xiàn).dep文件。這個文件主要是供使用你的ActiveX控件的程序設(shè)計者制作他自己程序的安裝盤時使用的。你的用戶在使用Setup Wizard制作安裝盤時,Setup Wizard會讀取這個文件,檢查你的ActiveX控件需要哪些DLL支持。一般不用手工修改這個文件,如果你認為確有必要,可以使用記事本打開修改。

  

  問題:我用VB+Access開發(fā)數(shù)據(jù)庫系統(tǒng)。但到發(fā)布時用VB自已的發(fā)布向?qū)r,我程序目錄中的子目錄的文件卻加入不正常,向?qū)Р话醋幽夸泤^(qū)分,而是將所有文件都加到程序目錄中。怎么辦?

  

  答: VB的安裝向?qū)侵С种谱靼ㄗ幽夸浀陌惭b程序的。運行安裝向?qū)У?#8220;文件小節(jié)”一步,在對話框中選擇“添加”按鈕,然后選擇應(yīng)該放置在子目錄中的文件添加到文件列表中。

  然后從文件列表中選擇該文件,點擊 “文件詳細資料”按鈕。在圖3所示對話框中設(shè)置目標路徑。最好不要用絕對路徑(如C:MyProject)來指定安裝位置,這樣會給用戶帶來不便。安裝向?qū)褂煤陙碇甘疚募惭b的位置。這些宏只在安裝程序中有效。宏的含義參見表1。如果要將文件放置在應(yīng)用程序目錄下的Data子目錄下,可以使用$(AppPath)Data來指定安裝路徑。

  問題:安裝時,用VB自己的“展開與打包向?qū)?#8221;制作的安裝盤,不知道怎么讓程序在桌面上放一個快捷方式?

  

  答:VB“展開與打包向?qū)?#8221;所生成的安裝程序的工作步驟是這樣的:先運行Setup.exe,這個程序?qū)B的運行庫安裝到用戶的機器上,同時將.cab文件中的文件釋放到臨時目錄中,然后再調(diào)用臨時目錄中Setup1.exe完成余下的安裝工作。Setup1.exe是由VB寫的(正是這個原因所以要先安裝VB的運行庫),其源程序可以在VB98WizardsPDWizardSetup1中找到。如果你對VB的安裝程序不滿意,希望添加新功能,可以直接修改Setup1.vbp。具體到你的問題,在VB中可以打開Setup1.vbp,然后修改Setup1.frm的Form—Load事件,在其中可以找到如下幾行:

  ′  ′ Create program icons (or links, i.e. shortcuts).

  ′ If (fMainGroupWasCreated = True) Or ((cIcons > 0) And TreatAsWin95()) Then

    ShowStaticMessageDialog ResolveResString(resPROGMAN)

    CreateIcons gsICONGROUP

   ′Do the same for other sections in SETUP.LST if you′ve added your own.

   ′CreateIcons ″MySection″

   ′CreateIcons ″MyOtherSection″

   End If

  在If.. End If中加上:

  OSfCreateShellLink ″....Desktop″, _

       ″我的程序″, gstrDIR—DEST+″MyProg.exe″, ″ ″

  重新編譯Setup1.vbp,用Setup1.exe替換掉原來的Setup1.exe即可。

  

  問題:我用VB 5.0安裝向?qū)傻陌惭b程序,安裝到最后時總是顯示“文件C:WindowsSystem$(DllSelfRegisterEx)不能被注冊,由于它未找到”的提示信息后安裝失敗,請問原因?

  

  答:這是VB 5.0/6.0的一個Bug。

    如果運行Visual Basic 5.0生成的安裝盤,會產(chǎn)生下面的錯誤:

  The file ′$(DLLSelfRegisterEx)′ could not be registered because it was not found.

  如果運行Visual Basic 6.0生成的安裝盤,會產(chǎn)生下面的錯誤:

  The file ′Msftqws.pdw$(DllSelfRegisterEx)′ could not be registered because it was not found.

    這個問題發(fā)生在分發(fā)Microsoft Calendar control(MSCal.ocx)時。MSCal.dep文件中的"Register="行被錯誤地設(shè)置成 $(DLLSelfRegisterEx)了。

  解決辦法如下:

  1. 使用記事本打開Setup.lst文件。Setup.lst文件是Setup Wizard或PDW制作安裝盤時生成的。

  2. 查找$(DLLSelfRegisterEx)。你將看到在MSCal.ocx的一行中有$(DLLSelfRegisterEx)。

  3. 修改 $(DLLSelfRegisterEx) 為$(DLLSelfRegister)。

  4. 關(guān)閉記事本并保存文件。

  5.運行Setup.exe。

  如果希望今后生成的Setup.exe都不出這樣的錯誤,可以這樣做:

  1. 使用記事本打開MSCal.dep文件。你可以在MSCal.ocx所在的目錄(通常是Windows 95/98的WindowsSystem或Windows NT的WinntSystem32)找到MSCal.dep文件。

  2. 查找$(DLLSelfRegisterEx)。你將可以在“Register=”一行看到$(DLLSelfRegisterEx)。

  3. 修改 $(DLLSelfRegisterEx) 為$(DLLSelfRegister)。

  4. 關(guān)閉記事本并保存文件。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB如何生成EXE文件
ado打包時,是應(yīng)該打msado15.dll呀,還是應(yīng)該打msado25.tlb呀,有何區(qū)別?
更好用的 VB6.0打包圖文教程
打包軟件的最快方法
Shell語句用法心得(Rundll32.exe)
電腦口令大全(收集、整理)
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服