我有一個遺留的vb6應用程序在退出時崩潰 - 無論是作爲可執行文件還是在IDE中。我怎樣才能避免碰撞?退出VB 6崩潰
- 我目前卸載形式(除了frmmain)在
form_unload
,釋放所有的ADODB記錄集,將所有的boundcollections =什麼都沒有。 - 我試圖在
form_terminate
事件中發現SetErrorMode SEM_NOGPFAULTERRORBOX
,但這並未阻止發生錯誤。 - 我也檢查了在我的代碼中實例化的子類,發現沒有。
- 我檢查了使用的外部組件 - 它們是ComponentOne FlexGrid 8拼寫8和ComponentOne sizer控件。廣泛的網絡和論壇搜索沒有發現任何類似於我的這些控件的已知問題。
如果我在實際做任何事情之前關閉程序,似乎不會出現此問題。然而,加載綁定控件似乎是靠近問題根源的地方,儘管重複地使用調試器,似乎問題的開始「移動」了。編程式退出,「X」和IDE「結束」控制出現問題 錯誤消息是 The instruction at "0x77d042b8" referenced memory at "0x055c9028". The memory could not be "Read"
。在錯誤框的標題是從我的應用程序 內的工具提示(在不同的時間不同)逐步執行代碼時,我已經把遊 - 在Form_Unload事件上退出子線的應用程序崩潰
ADDED
我意識到,我應該包括一些其他信息與我原來的職位。當我做到這一點時,我非常疲倦和沮喪,對不起,這很難閱讀。 1)我確實安裝了最新的服務包(6),並且組件的最新版本爲
2)在我的VS2010 IDE(它位於同一臺服務器上)中進行調試時,我得到了很長的時間以OLEAUT32.dll開頭的堆棧轉儲,我更新了該DLL,但沒有發現變化
3)我實際上是通過遠程桌面連接運行(並正在運行)該程序。該程序在我的桌面以及用戶終端服務器連接上崩潰。
4)我下運行的操作系統是Windows Server 2003的
5)我運行的代碼是
Private Sub Form_Unload(Cancel As Integer)
Set rsChild = Nothing
Set rsCaseFile = Nothing
' many similar record sets closing
ys.CloseConnection
Set ys = Nothing
UnloadAllForms (Me.Name)
' closeing bound collections
Set bndChild = Nothing
Set bndAuth = Nothing
' more bound collections closed
' i had added the next two lines but it made no difference
frmmain.close
Set frmMain = nothing
getout
end sub
Public Sub UnloadAllForms(Optional FormToIgnore As String = "")
Dim f As Form
For Each f In Forms
If Not f Is Nothing Then
If f.Name <> FormToIgnore Then
Unload f
Set f = Nothing
End If
End If
Next f
End Sub
'\code'
6)我已經加入的「getout」例行「代碼」的啓動希望模塊能夠讓表單對象乾淨地關閉這並沒有解決問題
非常感謝大家的幫助
你可以發佈你關閉時運行的代碼嗎? – jac 2011-06-15 20:09:00
哇,這是一個段落中的大量密集文本供人閱讀和理解免費...在格式化文本可讀的一些努力可能是爲了 – 2011-06-15 20:15:03
@ p.campbell問題是在那裏的第一個句子「我的vb6應用程序在退出時崩潰 - 既作爲可執行文件又作爲IDE使用。」這意味着「我怎樣才能避免崩潰」! @Jarrod這是一個措詞良好的問題,只需要一些格式。我會編輯它。如果你自己編輯它,將來它可能對noobie更友好? @關閉選民和downvoters。沒有冒犯,但**你怎麼了**?這是一個明確的問題。這很長,但那是因爲IronHead在研究這個問題上做了很好的工作。這不是「太本地化」。對問題+1,我將投票重新打開,如果它關閉。 – MarkJ 2011-06-16 11:58:04