2

我想对我公司的一个非常旧的软件进行更改。销售量。它是一个 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

只是为了让你知道我没有写那个代码,我只是在做一些 mod 工作。

第三个选项:

3-Help

它给了我另一个错误

Cannot find the windows help.

我该怎么办???以前有人遇到过这个问题吗???

4

1 回答 1

3

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

于 2013-10-22T13:47:59.633 回答