2010-03-16 622 views
4

在VB6中,用户偶尔会收到此错误,我无法重现它。什么导致VB6“运行时错误'5':无效的过程调用或参数”

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

我引用“的MSWord 10对象库”,有时这种错误发生在一些点上的应用程序已打开的MSWord 2002年后然而,这个程序已经引用了多年的MSWord 10对象库,这个错误刚刚发生在最近几个月。

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

用户运行的是Windows XP

回答

5

从内存VB6(现在用.NET)这可以在用户的​​机器是内存不足或您的代码一直无法获得这个词应用一个手柄点。

如果您无法在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

+1放入错误处理程序并放入行号中,找出哪一行抛出错误,然后您将更好地找出错误发生的原因。 – MarkJ 2010-03-16 15:43:08

+0

一个例子是让焦点集中到一个隐藏的控件。 – danihp 2013-05-06 10:04:47

0

这可能是一个“速度”问题,其中用户推出的Word /表单多次并跳出模态显示错误(http://support.microsoft.com/kb/242347)。例如你是在放弃应用程序还是在容器窗口中显示它?他们是否有可能不耐烦,并且多次点击按钮?尝试多次快速点击按钮或设置焦点,反复敲击输入。

如果出现这种情况,您需要以某种方式处理/阻止多次点击(更容易)或预先加载Office,以尽量减少应用初始化时的延迟。

+0

该代码正在使用以下命令对应用程序进行脱壳处理: Dim app As Word.Application = GetObject(“”,“Word.Application”) 实际上,报告问题最多的用户是通过Citrix运行应用程序。总共有350个用户,大约100个用户通过Citrix使用该应用 – user52212 2010-03-16 16:59:24

相关问题