检测VB6中是否附加调试器

bha*_*mby 6 vb6 debugging

我正在使用Visual Basic 6编写的旧应用程序之一进行一些维护工作,由于各种原因,如果我们通过VB6 IDE运行程序,我们只需要运行一部分代码(即,附加调试器).

在VB.NET中,您可以使用该System.Diagnostics.Debugger.IsAttached()属性执行此操作,但我在Google上的VB6中找不到任何类似的内容.

是否有一些简单的方法来计算这些信息?

wqw*_*wqw 11

这是我们正在使用的没有任何副作用

Public Property Get InIde() As Boolean
    Debug.Assert pvSetTrue(InIde)
End Property

Private Function pvSetTrue(bValue As Boolean) As Boolean
    bValue = True
    pvSetTrue = True
End Function
Run Code Online (Sandbox Code Playgroud)

  • 没有任何副作用海报意味着如果你打开了"Break On All Errors",这将不会像@Jay Riggs所接受的答案那样停止程序的执行(如果你在整个地方使用InIde,这可能会非常烦人地点. (2认同)

Jay*_*ggs 7

这是我一直在使用的功能:

Private Function RunningInIde() As Boolean
    On Error GoTo ErrHandler
    Debug.Print 1 / 0
ErrHandler:
    RunningInIde = (Err.Number <> 0)
End Function            ' RunningInIde
Run Code Online (Sandbox Code Playgroud)

  • 此函数将`Err`对象重置为副作用 (2认同)