下面是引用 n3ph223172 於 2011-09-02 21:00 發表的 :
除了安裝VB2010以外沒有其他的方法嗎?
聽說好像VB6寫出來的程式比較少問題??
是啊,VB6 寫出來的都很穩定,可是 VB6 未來的作業系統幾乎都不支援了
VB2010 轉到 VB6 也有巨大的困難,兩者的程式碼差異很大
(1) 之前的 無法複製檔案 錯誤,可能造成錯誤的程式碼只有這行 :
My.Computer.FileSystem.CopyFile(dataDir & "CS_Update" & cData.listUpdate(l), curDir & cData.listUpdate(l), True)dataDir 就是 %Temp%\ 中的資料夾,curDir 則是目前程式啟動位置的資料夾
偵錯方法 :在 frm_main 中的 Sub local_new_copyfile
把裡面最後一行改掉 (之後記得改回來):
原本是
複製程式
Err_2: local_show_errDlg("Err_copyFile", cData.listUpdate(l))
改成
複製程式
Err_2: local_show_errDlg("Err_copyFile", cData.listUpdate(l)): MsgBox(Err.Description, MsgBoxStyle.Critical, "Debug mode")
然後讓發生這個錯誤的電腦再去跑一次這編譯的程式,然後回報錯誤的訊息
我猜一定是資料夾路徑出了什麼問題,搞不好是防毒擋下來的
(2) 之前那個 執行階段錯誤 我懷疑有可能是這一行引發錯誤的 :
flagUpdate = Not CBool(cData.listHash(l) = buff.ToString)cData.listHash() 的資料是在 Sub data_load_index 增加的,index 超出範圍就代表當初沒加到
就代表 index.txt 下載過程可能出問題,或是伺服器檔案出錯,編碼錯誤的可能性不大
偵錯方法 :在 flagUpdate = Not CBool(cData.listHash(l) = buff.ToString) 前面加上這三行 :
複製程式
MsgBox(cData.listHash.Count)
Clipboard.Clear()
Clipboard.SetText(My.Computer.FileSystem.ReadAllText(dataDir & "index.txt"))
會有一個框框跳出,如果寫 0 就代表當初 index.txt 解析過程有問題,才會沒讀到 MD5 碼
(如果寫 1 以上 ,就是我前面說錯了)
然後讓那台電腦使用者把 剪貼簿 的文字貼過來看看,看看他從 FTP 下載回來的 index.txt 出了什麼問題