我運行VS當我編譯它在調試模式下應用程序和我 devevelopment PC
運行它,當你編譯你必須編譯爲本地代碼或P碼的選項。調試器僅使用pcode運行。在極少數情況下,當您編譯爲本地代碼時,行爲會發生變化。這個特別是非常罕見的。自從VB6發佈以來,我使用了VB6,並且每年可能會獲得一次或兩次。我的應用程序是一個複雜的CAD/CAM創建形狀和運行金屬切割機,並有二十幾個DLL。不是典型的情況。在家用我的愛好軟件,我從來沒有遇到過這個問題。
還有另一類由事件排序問題導致的錯誤。雖然VB6不是真正的多任務處理,但它有能力跳出當前代碼塊來處理事件。如果它重新進入新事件的相同塊,可能導致有趣的事情(至少可以說)。我認爲這是你的問題的可能來源,因爲你的軟件是一個高度交互式的軟件編輯器。
一般來說,通過對受影響區域進行重新排序來解決問題。您可以通過插入MsgBox或寫入文本文件來記錄受影響的區域以記錄您的位置。我建議記錄到一個文本文件作爲MsgBox傾向於改變時間或多任務相關的行爲。
請記住,如果事件在代碼塊中間發生VB6時觸發,並且存在一個DoEvents,那麼它將使代碼塊處理事件並返回到原始代碼塊。如果它重新進入相同的代碼塊,並且你不意味着發生這種情況,那麼你將遇到問題。而且在不同的計算機上你會遇到不同的問題,因爲每個計算機的時間都會不同。
處理這類問題的最簡單方法是創建一些標誌變量。按照多任務的說法,它們被稱爲信號量或互斥量。當你輸入代碼的關鍵部分時,你將它設置爲true。當你離開例程時,你將它設置爲false。如果在輸入該代碼段時已經爲真,則不執行該代碼段。
當我安裝在不同的電腦上。
這些通常是安裝錯誤DLL的結果。最有可能你有一個較舊的版本,而目標有一個更新的版本。我會下載免費的虛擬PC,並創建一個乾淨的Windows XP安裝來仔細檢查。
如果您的問題是事件時間,這也可能會在不同的計算機上有所不同。這是通過記錄(而不是MsgBox)可疑區域找到的。
如果你可以顯示一個屏幕截圖或你的具體錯誤的文字,那麼我可以幫助更好。
相關問題:[Vb 6使調試器不同的結果](http://stackoverflow.com/questions/221502/vb-6-make-exe-different-results-to-debugger/221622#221622) – dummy 2009-02-08 10:02:30