是什么导致VB6“运行时错误'5':无效的过程调用或参数”

时间:2010-03-16 13:32:03

标签: vb6 error-handling runtime-error

在VB6中,用户偶尔会收到此错误,我无法重现。

Run-Time Error '5': Invalid Procedure Call or Argument

我正在引用“MSWord 10对象库”,有时这个错误发生在应用程序打开MSWord 2002之后的某个时刻。但是,这个应用程序多年来引用了MSWord 10对象库,这个错误刚刚开始发生在过去几个月。

我假设我已经在某个地方引入了一个错误,但不知道是什么导致了它。当我站在那里时,错误不会经常发生并且不能由用户再现。该错误迫使应用完全关闭。

用户正在运行Windows XP

2 个答案:

答案 0 :(得分:5)

从内存中使用VB6(现在使用.net),这可能会指向用户计算机内存不足或者您的代码无法获得word应用程序的句柄。

如果您无法在Visual Studio中产生问题并且不确定代码中的哪一行导致问题,那么最好在导致问题的代码周围添加错误处理程序。

在有问题的潜艇的顶部

   On Error GoTo MyErrorHandler

然后在底部放

   On Error Goto 0
   Exit Sub
MyErrorHandler:
   MsgBox "Error " & Err.Number & " (" & Err.Description & ") at line " & Erl

而不是像我在这里使用MsgBox而是考虑写下文件。也是为了让Erl正确地考虑你的每一行的编号。

对于VB6,一个很棒的插件是MZ工具link,它可以帮助您轻松添加错误处理和行号

答案 1 :(得分:0)

这可能是一个“速度”问题,用户多次启动Word /您的表单并绊倒模式显示错误(http://support.microsoft.com/kb/242347)。例如你是在炮轰应用程序还是在容器窗口中显示它?他们是否有可能变得不耐烦并且不止一次点击按钮?尝试快速单击按钮一次或设置焦点,重复按Enter键。

如果是这种情况,您将需要处理/阻止多次点击(更容易)或以某种方式预加载Office以最小化应用初始化时的延迟。