2013-10-22 61 views
2

我想对我公司的一款非常旧的软件进行更改。销售。它是一个VB5项目。无法调试VB5项目

只是要清楚,我不能改变语言,必须是绝对使用VB5 ....(如果我可以更改为C#我是地球上最幸福的人现在。)

这是问题所在。

我安装的Microsoft Visual Basic IDE和加载.vbp文件。

我阅读代码知道哪一部分做什么,但我想一步,看看它在屏幕上步(调试模式的断点) 。

所以,我冲在一些断点,然后点击“播放”(调试按钮),但我得到这个错误

Execution error '-2147024894 (80070002)': Automation Error 

但奇怪的是软做工精细,当我使用的。exe我觉得这可能是一个调试器的问题。

在这里,我有三种选择:

1-End program 

它结束程序

2-Debug 

它送我去行的代码,但我不知道什么是错误。

下面是它的代码点我在:

Private Sub Form_Load() 
Dim strLangue As String 

bBusy = False 

Set gImgBackground = Me.imgBackground 

Set gBackGround1 = LoadPicture(App.Path & "\images\bg1.gif") 
Set gBackGround2 = LoadPicture(App.Path & "\images\bg2.gif") 
Me.BackColor = &HC0E0E0 
gIniPath = App.Path & "\posi1000.ini" 

basMain.gLangFile = App.Path & "\" & inireadvalue(gIniPath, "general", "langfile", "") 
If InStr(UCase(basMain.gLangFile), "FR") <> 0 Then 
    strLangue = "FR" 
ElseIf InStr(UCase(basMain.gLangFile), "EN") <> 0 Then 
    strLangue = "EN" 
Else 
    strLangue = "FR" 
End If 

strComType = UCase(inireadvalue(gIniPath, "general", "ComType", "MOELLER")) 
If strComType = "MOELLER" Then 

' Dim tJRT_COM As JRT_COM.TEST_MOELLER 
' Set tJRT_COM = New JRT_COM.TEST_MOELLER 
' Set tJRT_COM = New JRT_SUCOMA.JRT_SUCOMA 

' Call tJRT_COM.openComDevice("COM1:19200", 0) 
' Set Module1.MyJRT_COM = tJRT_COM 


'' Dim t As String 

'' Set tJRT_COM = JRT_COM.New(True) 
'  Set MyJRT_COM = CreateObject("JRT_SUCOMA.JRT_SUCOMA") 
'MyJRT_COM = Ctype(
' Set MyJRT_COM = New JRT_SUCOMA.JRT_SUCOMA 
'' Dim tJRT_COM As New JRT_SUCOMA.JRT_SUCOMA 
' 

'' Set tJRT_COM = Nothing 
' 
'' If Module1.MyJRT_COM.setComDevice(gComDevice, strLangue) = 0 Then 
''  Module1.MyJRT_COM. 
'' End If 
' 
ElseIf strComType = "OMRON" Then 
' Set MyJRT_COM = New JRT_COM.JRT_OMRON 
' Set MyJRT_COM = CreateObject("JRT_COM.TEST_OMRON") 
' Set MyJRT_COM = MyJRT_COM_MOELLER 
'' Else 
'' Set MyJRT_COM = New JRT_COM.JRT_MOELLER 
'' Set MyJRT_COM = CreateObject("JRT_COM.TEST_MOELLER") 
End If 

gOfflineMode = inireadvalue(gIniPath, "General", "OfflineMode", "0") 

gComDevice = inireadvalue(gIniPath, "General", "ComDevice", "Com1:19200") 
If inireadvalue(gIniPath, "General", "ShowSelectComDevice", "0") = "1" Then 
    If strComType = "MOELLER" Then 
    bBusy = True 
    If Module1.MyJRT_COM_MOELLER.SetComDevice(gComDevice, strLangue) = 0 Then 
     Call iniwritevalue(gIniPath, "General", "ComDevice", gComDevice) 
    End If 
    bBusy = False 
ElseIf strComType = "OMRON" Then 
    bBusy = True 
**********It point here************************************************************** 
-> If Module1.MyJRT_COM_OMRON.SetComDevice(gComDevice, strLangue) = 0 Then 
     Call iniwritevalue(gIniPath, "General", "ComDevice", gComDevice) 
    End If 
    bBusy = False 
    End If 
    End If 
End Sub 

只要你知道我还没有写代码,我只是做了一些工作的国防部。

第三种选择:

3-Help 

它给了我另一个错误

Cannot find the windows help. 

我该怎么办???有没有人有过这个问题?

回答

3

Got it!我在vb项目中有两个“硬编码”的依赖关系,即使我将Microsoft VB IDE浏览到正确的文件,它也会尝试在错误的路径上加载两个.dll文件。我必须将这些文件放在由Microsoft VB5指定的路径中。并解决问题。