Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Com 什么是;方法'~';对象的'~';“失败”;在运行时意味着什么?_Com_Vb6 - Fatal编程技术网

Com 什么是;方法'~';对象的'~';“失败”;在运行时意味着什么?

Com 什么是;方法'~';对象的'~';“失败”;在运行时意味着什么?,com,vb6,Com,Vb6,我试图在我的桌面上运行一个遗留的VB6应用程序(它没有用户界面,是一个命令行应用程序),当我运行时,我会收到一个消息框,上面说 Run-time error '4099': Method '~' of object '~' failed 这对我来说毫无意义;有人知道出了什么问题吗?如果支持库(DLL或OCX)注册不正确,或者安装的库的版本与应用程序最初编译时使用的版本不同(且不兼容),则可能会发生这种情况 确保所有相关库都已注册且版本正确 您可能需要重新编译应用程序,使其与支持库的较新版本一

我试图在我的桌面上运行一个遗留的VB6应用程序(它没有用户界面,是一个命令行应用程序),当我运行时,我会收到一个消息框,上面说

Run-time error '4099':

Method '~' of object '~' failed

这对我来说毫无意义;有人知道出了什么问题吗?

如果支持库(DLL或OCX)注册不正确,或者安装的库的版本与应用程序最初编译时使用的版本不同(且不兼容),则可能会发生这种情况

确保所有相关库都已注册且版本正确


您可能需要重新编译应用程序,使其与支持库的较新版本一起工作。

我有VB6 SP6,可以重现此行为。在新项目中,将此代码放入表单中。项目使用F5正常运行。在项目上单击鼠标右键,然后选择“发布”,然后选择“生成输出”。这将生成错误消息

Option Explicit

Public Sub Init()
    Dim blnErrorHandling As Boolean

    If False Then
        blnErrorHandling = True
    Else
        blnErrorHandling = False
End Sub
现在注释掉最后四行:

Option Explicit

Public Sub Init()
    Dim blnErrorHandling As Boolean

'    If False Then
'        blnErrorHandling = True
'    Else
'        blnErrorHandling = False
End Sub

您不再得到错误,输出正常生成。我很快添加了一些错误处理来定位崩溃的来源,如果为False,则
是完全有效的。MDAC检查器说一切正常,重新启动并不能解决问题。

另一个原因可能是使用自动化时,Office的一些小版本不匹配:

我有一个遗留的VB5+Access应用程序(我正在用Delphi重写它,并用干净的OpenDocument生成替换所有的自动化混乱),它在一些系统上运行良好,在其他系统上出现错误

生成Excel电子表格时会发生此错误,并且看起来无害(除了烦恼,因为它会显示用户在中间单击“中止”的风险的十几倍),好像总是单击“忽略”一切都按预期工作

我最终发现原因是Office 97的安装方式:

如果Office 97安装顺序为:

  • Office 97 SR0安装光盘
  • 应用SR1修补程序
  • 应用SR2补丁
但如果安装了以下部件,则不会:

  • Office 97 SR1安装光盘
  • 应用SR2补丁

在受影响的系统上使用SR1安装程序进行卸载/重新安装解决了问题。

当Visual Basic 6应用程序进行COM接口调用并引发异常(即返回故障
HRESULT
)时,会出现此消息。在这种情况下,VB6跳转到异常处理程序(由错误时的
设置)。在异常处理程序中,有一个可见的对象
Err
,其中包含异常的详细信息

如果对象实现了
ISupportErrorInfo
,并且它确实支持错误信息,并且设置了错误信息,那么
Err.Description
将获取对象设置的错误信息中的字符串。否则,
Err.Description
采用~failed
的字符串
Method~


IDK其他版本的VB是否做同样的事情;或者,除了我刚才描述的场景外,该消息还设置在其他场景中。

我曾经遇到过这个问题

我寻找答案,这个网页是搜索的首选

刚才

我卸载了Office 2000工具栏

卸载了Visual Basic 6并删除了所有内容,但未删除MSDN

重新安装的Visual Basic 6

但我总是让我的剪贴板记录器程序在Visual Basic 6中运行

发现这就是错误所在

如果不运行,我就不会出错

“~”对象“~”的方法失败

启动Visual Basic 6 IDE时

使用Ctrl-F5运行剪贴板代码VB6程序后

从完整编译开始

并修复代码中的编译错误

但在加载VB6 IDE时仍然存在问题

直到我将-Option显式放入整个剪贴板代码

除了一个模块太大,无法快速完成

但特别是在类模块中

有一些未声明的变量

然后就治好了

这是我个人的解决方案,也是我对这个Web日志的贡献

这里有一个额外的更新和编辑

在阅读了本主题的三条线索之后 其中一个是关于剪贴板的

我又在测试中发现了这个Bug

因为这是我的剪贴板代码

我对VB6 IDE在加载时使用剪贴板感到恼火,尤其是当 将剪贴板带入代码

我让代码截取VB6 IDE加载的位图 把以前的东西放回去

现在,我必须在代码中更加考虑问题,等待启动屏幕以“Findwindow”结束

我想我现在解决了

我有一个专业编写的剪贴板源代码,我认为使用API

我找到了,但还没有使用

在我的代码中,我不得不搜索,这似乎是一种痛苦

For i = -30000 To 32000
    i2 =  Clipboard.GetFormat(i)
Next
检验是否为假

对于窗体设计器中已删除对象的剪贴板

这样他们就不会瘫痪或干扰我的代码程序

我的剪贴板程序代码是我一直运行的唯一持久程序

用于从Internet页面获取剪贴簿

它还拍摄/记录截图的图片、位图以及存储在日期和时间文件中的内容

我希望我知道更多关于如何获得拖放信息

希望这有帮助


2015年8月14日上午8点至9点

对于作为命令行应用程序运行的VB6程序,编译后需要额外的阶段:需要在可执行文件上运行VB6链接器,以将其设置为控制台程序:

<VB6 dir>\LINK.EXE  /EDIT  /SUBSYSTEM:CONSOLE  <program>.exe
\LINK.EXE/EDIT/SUBSYSTEM:CONSOLE.EXE

如果不这样做,则在程序运行时,对象~'的
方法~'将失败
错误。

根据我的经验,这是由于Microsoft Access版本造成的


我的程序是在MS Office 2007中开发的,并安装了更新版本的MS Office。这就是出现此错误的原因。

在VB6 IDE中,转到工具->选项