1

次のコードでエラー 6: .NET アプリケーション (QCSearch.exe) を起動するとオーバーフローが発生するのはなぜですか:

Private Sub StartQCSearch()
    Dim wsh As WshShell
    Dim waitOnReturn As Boolean: waitOnReturn = True
    Dim windowStyle As Integer: windowStyle = 1
    Dim errorCode As Integer
    Dim pth As String
    
    Set wsh = New WshShell
    pth = ThisWorkbook.Path & "\QCSearch.exe"
    // Following line is marked, when debugging error 6:
    errorCode = wsh.Run(pth, windowStyle, waitOnReturn)
    If errorCode <> 0 Then
        MsgBox "QCSearch.exe exited with error code " & errorCode & "."
    End If
End Sub

.NET アプリケーション (c# で記述) には、ダイアログを開くメイン フォームがあります。このダイアログを確認すると、エラー 6 が発生し、.NET アプリケーションがすぐに閉じられます。

ダイアログが で割り当てられない終了コードを返しているようですerrorCode。しかし、私が言ったように、.NET アプリケーションの終了コードを確認しましたが、通常はダイアログを閉じるのではなく、メイン フォームを閉じることで返されるはずです?!

また、エラーをデバッグした後も、errorCode変数にはまだ 0 が割り当てられています。

事前に助けてくれてありがとう。

更新

Windows CMD から .NET アプリケーションを起動すると、ダイアログを確認した後にも壊れます。今、私は本当に混乱しています。内部ダイアログがアプリケーション全体を閉じる理由を知っている人はいますか?

4

1 に答える 1

0

.NET アプリケーションで相対パスを使用する場合は、次のことを忘れないでください

wsh.CurrentDirectory = ThisWorkbook.Path
于 2013-03-27T14:33:01.183 に答える