Что вызывает VB6 «Ошибка времени выполнения« 5 »: неверный вызов процедуры или аргумент» - PullRequest
5 голосов
/ 16 марта 2010

В VB6 пользователи иногда получают эту ошибку, и я не могу ее воспроизвести.

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

Я ссылаюсь на «Библиотеку объектов MSWord 10», и иногда эта ошибка возникает в какой-то момент после того, как приложение открыло MSWord 2002. Однако это приложение ссылалось на Библиотеку объектов MSWord 10 в течение многих лет, и эта ошибка только что начала появляться последние несколько месяцев.

Я предполагаю, что я где-то внес ошибку, но не знаю, что может быть причиной. Ошибка возникает не очень часто и не может быть воспроизведена пользователем, когда я стою там. Из-за ошибки приложение полностью закрывается.

Пользователи работают под управлением Windows XP

Ответы [ 2 ]

5 голосов
/ 16 марта 2010

Из памяти с 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, как я здесь, рассмотрите возможность записи в файл. Также для Эрла, чтобы работать правильно, учитывая нумерацию каждой из ваших строк.

Для VB6 отличный плагин - MZ tools link , который поможет вам действительно легко добавлять обработку ошибок и номера строк

0 голосов
/ 16 марта 2010

Это может быть проблема «скорости», при которой пользователь запускает Word / вашу форму несколько раз и выдает ошибку модального отображения (http://support.microsoft.com/kb/242347). *. Например, вы закрываете приложение или отображаете его в окне контейнера? Возможно ли, что они теряют терпение и нажимают кнопку / более одного раза? Попробуйте быстро нажать кнопку более одного раза или установить фокус, нажимая несколько раз клавишу ввода.

В этом случае вам нужно либо обработать / заблокировать несколько кликов (проще), либо каким-либо образом предварительно загрузить Office, чтобы минимизировать задержку при инициализации приложения.

...