首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启动VB6开发环境的“对象的方法'~‘失败”

启动VB6开发环境的“对象的方法'~‘失败”
EN

Stack Overflow用户
提问于 2011-12-20 10:01:54
回答 8查看 12.3K关注 0票数 14

我注意到,大约每三次启动一次VB6 IDE,就会出现一个带有以下错误消息的消息框:

代码语言:javascript
复制
Method '~' of object '~' failed

这种情况不会发生在任何特定的项目中,也不会发生在我注意到的任何其他共同点上。它似乎没有造成任何问题后,取消消息。我的问题是:我应该担心这件事吗?如果是的话,我该怎么办。

我注意到了关于相同错误消息hereherehere的其他问题,但我得到了打开项目的消息。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-12-20 12:36:28

我以前偶尔会遇到这个错误,在我的例子中,它是由Visual外接程序造成的(我猜安装错误;重新安装纠正了问题)。它从来没有引起任何问题,它只是一个麻烦。正如Jon在评论中所说的,我会尝试关闭外接程序,看看这是否解决了问题。另一件事是确保您正在运行Service 6。

票数 4
EN

Stack Overflow用户

发布于 2011-12-20 15:09:26

这通常是由本地机器上的锁定剪贴板造成的。VB6 IDE外接程序使用剪贴板将图标复制/粘贴到工具栏按钮,因为外接程序API不公开任何其他将图像放置在那里的方法。

通常,远程桌面客户端(mstsc.exe)是锁定剪贴板的罪魁祸首。Microsoft实现向远程剪贴板传输的方式是通过探测本地剪贴板的可用格式,从而锁定它一段时间。剪贴板是精心设计的全局资源,一次可由单个进程访问,如果资源当前不可用,则OpenClipboard API在其他进程中失败。

票数 6
EN

Stack Overflow用户

发布于 2016-10-14 20:31:23

我不知道这个特定的错误,但是我有一些关于这个错误信息的背景信息。

COM定义两个级别的错误信息。所有COM方法和属性都具有类型HRESULT的返回值,其中0 (S_OK)表示成功,负值表示错误。此外,还有一种机制来提供所谓的“丰富的错误信息”。

如果COM对象生成丰富的错误信息,VB6将显示所提供的信息。如果COM对象返回一个负值,但没有提供丰富的错误信息,那么VB6将显示“对象的方法'~‘失败”的消息。

有一些标准的错误代码,如E_POINTER和E_NOTIMPL,这些代码通常由C++中的COM对象返回。所有这些都会导致消息“对象的方法'~‘’失败”。

如果要在C++中实现COM对象,我的建议是始终生成丰富的错误信息。(在ATL中,只需调用Error函数即可。)

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

https://stackoverflow.com/questions/8573710

复制
相关文章

相似问题

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