史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2004-09-09, 02:49 AM   #1
s.h.e. 帥哥
註冊會員
榮譽勳章

勳章總數
UID - 67994
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2003-05-14
VIP期限: 2006-10
文章: 38
精華: 0
現金: 41 金幣
資產: 41 金幣
預設 Visual Basic封裝後安裝程式會認機器

本人用Visual Basic寫了一個資料庫分割的程式,曾於桌上型電腦AMD Athlon™ XP 2000+處理器使用VMware Workstation安裝Windows 98作業系統及Windows 2000 Professional版本、Intel® Cetrino ™筆記型電腦安裝Windows XP Professional、Home等版本及另一台Intel ® Pentium 4處理器之桌上型電腦安裝Windows XP Professional作業進行測試,均能正常安裝。在未安裝其他Office套裝軟體及資料庫管理程式前,仍可正常識別Access 97-2003資料庫並加以分割。曾商借另一台Pentium 4 2.0 M筆記型電腦安裝並執行無誤,一台Intel® Celeron® CPU 1.70GHz桌上型電腦亦同。

但某些機器無法正常執行,錯誤情形為出現「無法預期的錯誤」即關閉,且並未出現Error Code。本人程式中有On Error的敘述,但除了ErrorHandle的處理外,其他情形均用MsgBox顯示Err及Error的說明。對於本程式的情形Microsoft知識庫並未見到討論,搜尋許多網站,目前仍無法解決。詳細情形可於程式設計俱樂部討論區中搜尋「封裝」兩字,但仍本程式遇到情形之無具體解決方案。

此情形並非封裝時未引用某些使用元件,因為全新安裝的OS並加裝任何程式下,可正常執行,只是程式竟會認機器。使用InstallShield X及VB封裝結果皆同,用P Code的方式Complier也是一樣,懇請有經驗的大大協助。謝謝
s.h.e. 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2004-09-09, 07:36 PM   #2 (permalink)
註冊會員
 
andy0103 的頭像
榮譽勳章
UID - 22
在線等級: 級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時
註冊日期: 2002-12-06
VIP期限: 2009-06
住址: 台北
文章: 475
精華: 0
現金: 6190 金幣
資產: 11190 金幣
預設

你的問題 太模糊了

有可以 是 機器上的 資料庫 存取元件版本 不一致的問題
你可以 找一下 是否有 MS 的 ADO 或 JET 元件更新

當你開發的資料庫 存取元件版本 跟 機器上的版本 有不一致 就有可能錯誤
andy0103 目前離線  
送花文章: 11, 收花文章: 18 篇, 收花: 254 次
回覆時引用此帖
舊 2004-09-09, 08:16 PM   #3 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 67994
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2003-05-14
VIP期限: 2006-10
文章: 38
精華: 0
現金: 41 金幣
資產: 41 金幣
預設

引用:
原文由 andy0103 所發表
你的問題 太模糊了

有可以 是 機器上的 資料庫 存取元件版本 不一致的問題
你可以 找一下 是否有 MS 的 ADO 或 JET 元件更新

當你開發的資料庫 存取元件版本 跟 機器上的版本 有不一致 就有可能錯誤
213846 - INFO:使用「封裝暨部署精靈」(PDW) 來部署資料庫應用程式
http://support.microsoft.com/default...46&Product=vbb

封裝時已引用MADC_TYPE進去,已按照說明控制引用之版本,無法安裝的朋友,和我電腦上的OS及Office版本相同,且已請更新MADC最新版及Jet引擎。我在全新安裝的電腦,未加裝任何APP且未更新的情形,不管XP或是2000都可以正常執行。

錯誤應該不是發生在那裡,因為他們是連執行都無法執行,就直接出現「無法預期的錯誤」。
不知是否因為我在起初的Form引用了API,因為我要執行ShellExecute
s.h.e. 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2004-09-09, 09:40 PM   #4 (permalink)
註冊會員
 
andy0103 的頭像
榮譽勳章
UID - 22
在線等級: 級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時
註冊日期: 2002-12-06
VIP期限: 2009-06
住址: 台北
文章: 475
精華: 0
現金: 6190 金幣
資產: 11190 金幣
預設

還有一種可能

你的開發環境 可能太新了

例如 xp上開發 裝在 舊一點的os 環境



機器上 ie 的版本 也有關係

因為 os 的 核心元件 跟 ie 有相當程度的 相依

而且 你有用到 api .......


你可以 把你的 原始碼 找一台 win98 等級的 pc

重心編譯跟封裝 並發佈看看

照以往的經驗來看 在 win98 正常的程式
在 win2000 winxp 應該也沒有問題
如果有問題 ...... 都是可 補捉的錯誤.

倒是還沒有 "無法預期的錯誤" 這類的問題

對了 !! 你有沒有用 其它 第三方開發的元件
當元件內部出問題 也會有 "無法預期的錯誤"

你參考看看!!



我的開發環境 是win98

發佈的平台 都是 win2000 winxp
andy0103 目前離線  
送花文章: 11, 收花文章: 18 篇, 收花: 254 次
回覆時引用此帖
舊 2004-09-10, 12:41 AM   #5 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 67994
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2003-05-14
VIP期限: 2006-10
文章: 38
精華: 0
現金: 41 金幣
資產: 41 金幣
預設

andy0103 你好
我另製了一個空的setup.exe給不能裝的朋友
內容只包括了原本的第一個Form
就出現這個訊息。「執行階段錯誤50003」,上網查到這個訊息
'Runtime error 50003. Unexpected error
眾說紛云,有的說是Common的OCX要重註冊,有的說IE的問題...

另外又重寫了一個空白的Form,含有工具列而已,朋友可以執行
加入了CommonDialog,他還是能執行
於是,把原專案的第一個Form重寫,內容還是和原本一樣
含有功能表和CommonDialog,竟然又不能執行了...
我的功能表只是讓其他的Form跳出來... Ex. Form1.Show
錯誤訊息又回到「無法預期的錯誤」,沒有錯誤號碼...
錯誤就在這裡..我並沒有引用其他3th Party的東西...

我會試試在Win 98 Complier一次
謝謝..
s.h.e. 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2004-09-10, 01:27 AM   #6 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 67994
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2003-05-14
VIP期限: 2006-10
文章: 38
精華: 0
現金: 41 金幣
資產: 41 金幣
預設

附上某些電腦會發生錯誤的程式碼,在Form上只有引用CommonDialog及加上功能表,就連單獨包成一個Setup,能執行的能執行,原本不能執行的也不能執行,所以問題是出在這裡。引用API是沒問題的,因為我做了一個Form來跳出兩個Form,不管是否引用都會錯誤...比較了Setup.lst,該引用的都有進來....


Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub Form_Load()
frmSplash.Show
start = Timer
Do While Timer < start + 1.5
DoEvents
Loop
Unload frmSplash
mnuSetup.Enabled = False
End Sub

Private Sub frmCompact_Click()
frmCompactDB.Show vbModal
End Sub

Private Sub mnuExport_Click()
frmExport.Show vbModal
End Sub

Private Sub mnuOpen_Click()
' 顯示開啟檔案對話方塊
Dim Ftemp As String '暫存原檔名
dlgDialog.FileName = ""
dlgDialog.Flags = FileOpenConstants.cdlOFNFileMustExist
dlgDialog.DialogTitle = "開啟 Access 資料庫檔案"
dlgDialog.Filter = "Access 97-2003 (*.mdb)|*.mdb|"
dlgDialog.ShowOpen
Ftemp = OpenFileName
If Len(dlgDialog.FileName) > 0 Or OpenFileName <> Ftemp Then
FinishNewName = False '是否進入MDBOUTSET之準則
Tn = 1 '重設自動產生輸出檔名計數器
TableName = ""
OpenFileName = dlgDialog.FileName
OpenFileType = dlgDialog.FilterIndex
mnuSetup.Enabled = True
End If
End Sub

Private Sub mnuAbout_Click()
frmAbout.Show vbModal
End Sub

Private Sub mnuDelLog_Click()
MsgBox "確定要刪除Log檔嗎?", vbOKCancel + vbQuestion, "刪除log檔"
If rtn = vbOK Then
Kill App.Path & "\Outputlog.log"
End If
End Sub

Private Sub mnuEnd_Click()
End
End Sub


Private Sub mnuHelpFile_Click()
ShellExecute 0, "open", App.Path & "\Manual.pdf", "", App.Path, 1
End Sub

Private Sub mnuLog_Click()
If Dir(App.Path & "\outputlog.log") = "" Then
MsgBox "請先完成分割後,系統自動產生記錄檔!", vbExclamation, "找不到Log檔案"
Else
ShellExecute 0, "open", App.Path & "\OutputLog.log", "", App.Path, 1
End If
End Sub

Private Sub mnuSaveAs_Click()
frmConvert.Show vbModal
End Sub

Private Sub mnuSimple_Click()
SavedCount = 0
Setup.Show
End Sub

Private Sub munCross_Click()
frmCrossSetting.Show
End Sub
s.h.e. 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2004-09-10, 06:27 PM   #7 (permalink)
註冊會員
 
andy0103 的頭像
榮譽勳章
UID - 22
在線等級: 級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時級別:16 | 在線時長:340小時 | 升級還需:17小時
註冊日期: 2002-12-06
VIP期限: 2009-06
住址: 台北
文章: 475
精華: 0
現金: 6190 金幣
資產: 11190 金幣
預設

Private Sub Form_Load()
frmSplash.Show
start = Timer
Do While Timer < start + 1.5
DoEvents
Loop
Unload frmSplash
mnuSetup.Enabled = False
End Sub

你在 form_load事件 使用 doevents
我覺的 是有點問題

因為 doevents 會把表單控制權 暫時放出去
但是 這時候 forn_load() 內的程式碼 並未完全 執行 完畢

就在 下一個 執行時間片段 該表單的事件 觸發順序可能會 異常

有可能 form_activate() 事件 執行完成 在 forn_load()事件 之前

doevents 使用在 多工的環境 要小心
常會因電腦的快慢 就在 下一個 執行時間片段 該表單的事件 觸發順序可能會 異常
我想你反覆的test 應該已經快 抓到問題的核心
andy0103 目前離線  
送花文章: 11, 收花文章: 18 篇, 收花: 254 次
回覆時引用此帖
舊 2004-09-10, 08:18 PM   #8 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 67994
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2003-05-14
VIP期限: 2006-10
文章: 38
精華: 0
現金: 41 金幣
資產: 41 金幣
預設

引用:
作者: andy0103
Private Sub Form_Load()
你在 form_load事件 使用 doevents
我覺的 是有點問題

因為 doevents 會把表單控制權 暫時放出去
但是 這時候 forn_load() 內的程式碼 並未完全 執行 完畢

就在 下一個 執行時間片段 該表單的事件 觸發順序可能會 異常

有可能 form_activate() 事件 執行完成 在 forn_load()事件 之前

doevents 使用在 多工的環境 要小心
常會因電腦的快慢 就在 下一個 執行時間片段 該表單的事件 觸發順序可能會 異常
我想你反覆的test 應該已經快 抓到問題的核心
引用一段教學文章(大陸的,去Google一下,可以查到一堆網頁)
如何編寫高質量的VB代碼
在使用本機代碼進行編譯時,我發現有時候會引入一些莫名其妙的錯誤。在編譯環境中我的代碼完全正確地被執行了,但是用本機代碼選項生成的EXE檔卻不能正確執行。通常這種情況是在卸載視窗或彈出列印視窗時發生的。我通過在代碼中加入DoEvent語句解決了這個問題。當然出現這種情況的幾率非常少,也許有些VB程式師從來沒有遇到過,但是它的確存在。

So...我加入了Doevents來測試,但是,那是出錯後才加的,加入前和加入後情形一樣。
你講的非常有理,Doevents不能亂用,詳見MSDN說明...

剛聽您這樣一說,我今天又有任務了..不要一在Form Load就Show 另一個Form...試試..
另一篇英文文章...
http://www.experts-exchange.com/Prog..._20853230.html
提到我這個Error Code...大意是,他們公司新進了一批電腦,原本用好好的程式就出錯了,新舊電腦都是用Windows 2000 Sp4的OS...他也是找不出問題所在。
昨天星夜看完Google上英文(國內沒見到任何此類型討論)的類似文章...和我的問題都是不同的。有的說IE太舊,有的說要裝VB6 RunTime那程式,有的說舊的CommonDialog被註冊,新的就註冊不了。我用一個空白的Form去Setup,朋友可以用啊!!馬上請她再執行我的程式..怪..又不成了。問題就出在那個起始Form,但我看不出它的任何不同。如果她的電腦在我這,我一定一天就可以搞定。網路上很多教學文章或是坊間書籍常常都是講一半,哈。有時真的要自己去測試,一項項加一個個Try and Error。

大概,我的起始Form要改改了...再換個型式,山不轉路轉。不要用功能列試試...
這程式是我要送我指導論文教授的,花了我三星期去找資料庫的教學,又不是要去賣,別再整我了,老天!!我又不是讀資管的,從GW Basic進到VB已夠整人了,又碰資料庫,又搞這不相容電腦。小抱怨一下。
s.h.e. 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2004-09-11, 02:06 AM   #9 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 67994
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2003-05-14
VIP期限: 2006-10
文章: 38
精華: 0
現金: 41 金幣
資產: 41 金幣
預設

所有可能的方式都測了...
也用別的機器去Complier
Windows 2000或是Windows 98 SE

唯一的辦法,就是拆成小程式...一個個加上去了...
用一個空白的Form來掛所有的Dll和OCX
再拉程式進來...

再不行就是去他的機器Complier了

s.h.e. 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2004-09-11, 10:03 PM   #10 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 67994
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2003-05-14
VIP期限: 2006-10
文章: 38
精華: 0
現金: 41 金幣
資產: 41 金幣
預設

吐血...
可以用了


和大家分享


不能設定ICON
新的CPU,某些...會畫不出圖
和VB 5.0一樣...
s.h.e. 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 09:01 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1