2

会社で使用している非常に古いソフトウェアの 1 つに変更を加えることになっています。販売。そのVB5プロジェクト。

明確にするために、言語を変更することはできず、絶対に VB5 を使用する必要があります.... (もし C# に変更できたら、私は今地球上で最も幸せな男になるでしょう.)

これが問題です。

Microsoft Visual Basic IDE をインストールし、.VBP ファイルをロードしました。

コードを読んでどの部分が何をしているのかを知りましたが、画面上で段階的に確認したいと思います (ブレークポイント付きのデバッグ モード)。

それで、いくつかのブレークポイントを打ち込んで「再生」(デバッグボタン)を押しましたが、このエラーが発生しました

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

しかし、不思議なことに、.exe を使用するとソフトは問題なく動作します。これは、デバッガーに問題がある可能性があると思います。

ここから、次の 3 つのオプションがあります。

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 番目のオプション:

3-Help

それは私に別のエラーを与える

Cannot find the windows help.

私は何をしますか???誰かが前にその問題を抱えていましたか???

4

1 に答える 1

3

とった!Microsoft VB IDE を正しいファイルに参照しても、2 つの .dll を間違ったパスにロードしようとする 2 つの依存関係が vb プロジェクトに「ハード コード」されていました。これらのファイルは、Microsoft VB5 で指定されたパスに配置する必要がありました。そして問題解決。

于 2013-10-22T13:47:59.633 に答える