发布于 2011-12-20 12:36:28
我以前偶尔会遇到这个错误,在我的例子中,它是由Visual外接程序造成的(我猜安装错误;重新安装纠正了问题)。它从来没有引起任何问题,它只是一个麻烦。正如Jon在评论中所说的,我会尝试关闭外接程序,看看这是否解决了问题。另一件事是确保您正在运行Service 6。
发布于 2011-12-20 15:09:26
这通常是由本地机器上的锁定剪贴板造成的。VB6 IDE外接程序使用剪贴板将图标复制/粘贴到工具栏按钮,因为外接程序API不公开任何其他将图像放置在那里的方法。
通常,远程桌面客户端(mstsc.exe)是锁定剪贴板的罪魁祸首。Microsoft实现向远程剪贴板传输的方式是通过探测本地剪贴板的可用格式,从而锁定它一段时间。剪贴板是精心设计的全局资源,一次可由单个进程访问,如果资源当前不可用,则OpenClipboard API在其他进程中失败。
发布于 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函数即可。)
https://stackoverflow.com/questions/8573710
复制相似问题