Error handling 什么原因导致VB6“;运行时错误';5';:无效的过程调用或参数";

Error handling 什么原因导致VB6“;运行时错误';5';:无效的过程调用或参数";,error-handling,vb6,runtime-error,citrix,Error Handling,Vb6,Runtime Error,Citrix,在VB6中,用户偶尔会收到此错误,我无法重现它 运行时错误“5”:过程调用或参数无效 我正在引用“MSWord 10对象库”,有时此错误会在应用程序打开MSWord 2002后的某个时间点发生。然而,该应用程序多年来一直引用MSWord 10对象库,而这个错误是在最近几个月才开始出现的 代码正在使用以下命令对应用程序进行外壳处理: Dim app As Word.Application = GetObject("", "Word.Application") 我假设我在某处引入了一个bug,但不

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

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

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


代码正在使用以下命令对应用程序进行外壳处理:

Dim app As Word.Application = GetObject("", "Word.Application")
我假设我在某处引入了一个bug,但不知道是什么导致了它。当我站在那里时,错误不会经常发生,用户也无法再现。该错误将迫使应用程序完全关闭

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

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

使用VB6从内存(现在使用.net)这可能表明用户的计算机内存不足,或者您的代码无法获得word app的句柄

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

在有问题的接头顶部放置

   On Error GoTo MyErrorHandler
然后在底部放置

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

而不是像我一样使用MSGBOX考虑把文件写下来。考虑到对每一行进行编号,Erl也能正确工作

对于VB6,一个很好的插件是MZ tools,它可以帮助您非常轻松地添加错误处理和行号

这可能是一个“速度”问题,用户多次启动Word/your表单并触发模式显示错误()。e、 g.你是在炮击应用程序还是在容器窗口中显示它?他们是否可能变得不耐烦并多次点击按钮?尝试多次快速单击按钮或设置焦点,反复按enter键


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

+1输入错误处理程序并输入行号,找出哪一行抛出了错误,然后你就可以更好地理解为什么会发生这种情况。一个例子是将焦点放在一个隐藏控件上。代码使用以下代码对应用程序进行外壳处理:Dim app As Word.Application=GetObject(“,”Word.Application“),实际上报告问题最多的用户是通过Citrix运行应用程序的。总共有350名用户,大约100人通过Citrix使用该应用程序