首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是什么原因导致VB6应用程序中的“方法~对象~失败”?

是什么原因导致VB6应用程序中的“方法~对象~失败”?
EN

Stack Overflow用户
提问于 2012-01-11 07:30:44
回答 1查看 9.1K关注 0票数 1

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

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

“对象的方法~失败”

有人能建议是什么导致了这件事或者我能做些什么来获得更多的信息吗?

更新我知道围绕这条错误消息的其他问题。让我困惑的是,在使用VB调试器时没有问题。这些问题发生在部署后--甚至在同一台机器上。我原以为所有的组件都是注册和可用的。

代码语言:javascript
运行
复制
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部署到应用程序文件夹,而不是默认位置,此错误消息将不再出现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-11 10:22:43

在延迟绑定调用期间抛出异常(SEH)时会生成Method ~ of object ~ failed。VB6会努力“包装”每个延迟绑定的调用,以捕捉这种意外的行为。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8815662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档