1

我正在开发一个旧的 VB6 应用程序,最近添加了 Siemens OPC 组件。在 VB6 调试器中运行时我没有问题。

然后,我创建了一个部署包(包中包含 Siemens OPC dll)并将应用程序部署在同一台 PC 上。然后我在访问 OPC 对象时收到以下错误消息:

'方法〜对象〜失败'

谁能建议可能导致此问题的原因或我可以做些什么来获取更多信息?

更新 我知道有关此错误消息的其他问题。这里让我不解的是,使用VB调试器时没有问题。部署后会出现问题 - 即使在同一台机器上。我原以为所有组件都已注册并可用。

代码

Public Sub InitialiseOPC(ServerIP As String, OpcServerName As String, BaseAddress As String)
    On Error GoTo ProcError
    IsInitialised = False

    Set MyOpcServer = New OPCServer
    Dim LocalServers

    LocalServers = MyOpcServer.GetOPCServers(ServerIP)
    ....

调用 GetOPCServers 时发生错误。这是第一次访问 OPC 组件。

有什么方法可以追踪 VB 此时正在做什么(例如 dll 加载)?

更新

我尝试将 Siemens dll 部署到应用程序文件夹而不是默认位置,并且不再出现此错误消息。

4

1 回答 1

4

Method ~ of object ~ failed在后期绑定调用期间引发异常 (SEH) 时生成。VB6 努力“包装”每个后期绑定调用以捕获此类意外行为。

在您的情况下,很可能一个 VC 组件正在尝试加载依赖的 DLL 或 COM 对象并且失败但没有优雅地处理失败。相反,它会尝试在空引用上调用方法并使用访问冲突或类似异常进行轰炸。

于 2012-01-11T10:22:43.353 回答