6

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

运行时错误“5”:无效的过程调用或参数

我引用的是“MSWord 10 对象库”,有时在应用程序打开 MSWord 2002 后的某个时间点会出现此错误。但是,此应用程序多年来一直引用 MSWord 10 对象库,并且此错误在最近几年才开始发生个月。

该代码使用以下内容对应用程序进行炮击:

Dim app As Word.Application = GetObject("", "Word.Application")

我假设我在某处引入了一个错误,但不知道是什么原因造成的。该错误不会经常发生,并且当我站在那里时,用户无法重现该错误。该错误迫使应用程序完全关闭。

用户正在运行 Windows XP。报告问题最多的用户是通过 Citrix 运行应用程序。共有 350 名用户,大约 100 名通过 Citrix 使用该应用程序。

关于如何修复错误的任何想法?

4

2 回答 2

5

从内存中使用 VB6(现在使用 .net),这可能表明用户机器内存不足,或者您的代码无法获取单词 app 的句柄。

如果您无法在 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 工具链接,它将帮助您非常轻松地添加错误处理和行号

于 2010-03-16T13:50:15.907 回答
0

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

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

于 2010-03-16T15:11:21.760 回答