Подтвердить что ты не робот

Что означает "Метод" ~ 'объекта' ~ 'failed?

Я пытаюсь запустить устаревшее приложение VB6 на своем рабочем столе (у него нет пользовательского интерфейса, это приложение из командной строки), и когда я это делаю, я получаю окно с сообщением

Run-time error '4099':

Method '~' of object '~' failed

Это ничего не значит для меня; кто-нибудь имеет представление о том, что происходит не так?

4b9b3361

Ответ 1

Это может произойти, если поддержка библиотек (dlls или ocxs) не зарегистрирована должным образом или версии установленных библиотек различны (и несовместимы) с версией, которую приложение было скомпилировано ранее.

Убедитесь, что все зависимые библиотеки зарегистрированы и правильная версия.

Возможно, вам придется перекомпилировать приложение, чтобы оно работало с более новыми версиями поддерживающих библиотек.

Ответ 2

Это сообщение возникает, когда приложение Visual Basic 6 вызывает вызов COM-интерфейса, который выдает исключение (т.е. возвращает сбой HRESULT). В этом случае VB6 переходит к обработчику исключений (как установлено On Error). В обработчике исключения отображается объект Err, который содержит сведения об исключении.

Если объект реализует ISupportErrorInfo и фактически поддерживает информацию об ошибке, и он установил информацию об ошибке, то Err.Description берет строку, содержащуюся в информации об ошибке, заданной объектом. В противном случае Err.Description принимает строку Method ~ of ~ failed.

IDK, делают ли другие версии VB то же самое; или если сообщение также установлено в других сценариях, кроме того, что я только что описал.

Ответ 3

У меня есть VB6 SP6, и я могу воспроизвести это поведение. В новом проекте введите этот код в форму. Проект работает нормально с F5. Щелкните правой кнопкой мыши проект и выберите "Опубликовать", а затем "Выполнить". Это генерирует сообщение об ошибке.

Option Explicit

Public Sub Init()
    Dim blnErrorHandling As Boolean

    If False Then
        blnErrorHandling = True
    Else
        blnErrorHandling = False
End Sub

Теперь закомментируйте последние четыре строки:

Option Explicit

Public Sub Init()
    Dim blnErrorHandling As Boolean

'    If False Then
'        blnErrorHandling = True
'    Else
'        blnErrorHandling = False
End Sub

Вы больше не получаете ошибку, и выходы строятся нормально. Я быстро добавлял некоторые ошибки обработки, чтобы найти источник аварии, и If False Then является абсолютно допустимым. Контроллер MDAC сказал, что все в порядке, и перезагрузка не решила проблему.

Ответ 4

Другая причина может быть при использовании автоматизации, некорректной несоответствующей версии Office:

У меня есть устаревшее приложение VB5 + Access (которое я сейчас переписываю в Delphi и заменяю весь беспорядок автоматизации чистым поколением OpenDocument), который хорошо работает на некоторых системах и дал ошибку другим.

Эта ошибка произошла при создании электронной таблицы Excel и казалась безвредной (за исключением раздражения и, как это было бы в десятки раз, риск нажатия пользователем "Отменить" посередине), как будто всегда щелкает "Игнорировать", все работает как ожидается.

В итоге я обнаружил, что причиной было то, как был установлен Office 97:

Ошибка будет отображаться, если была установлена ​​последовательность установки Office 97:

  • Установочный компакт-диск Office 97 SR0
  • применить патч SR1
  • применить патч SR2

но не если он был установлен с помощью:

  • Установочный компакт-диск Office 97 SR1
  • применить патч SR2

Выполнение удаления/переустановки с установкой SR1 в затронутых системах решило проблему.

Ответ 5

Для программы VB6, которая запускается как приложение командной строки, после компиляции требуется дополнительный этап: необходимо, чтобы компоновщик VB6 выполнялся в исполняемом файле, чтобы установить его как консольную программу:

<VB6 dir>\LINK.EXE  /EDIT  /SUBSYSTEM:CONSOLE  <program>.exe

В противном случае при запуске программы будет выдана ошибка Method '~' of object '~' failed.

Ответ 6

Согласно моему опыту, это связано с версией Microsoft Access.

Моя программа была сделана в MS Office 2007 и установлена ​​более новая версия MS Office. Вот почему эта ошибка появляется.

Ответ 7

У меня была эта проблема для времени.

Я искал ответ, и этот веб-сайт был Top of Search.

A Moment Ago.

Я удалил панель инструментов Office 2000

Удаленный Visual Basic 6 и удалены все, но не MSDN

Переустановил Visual Basic 6

Но я всегда делал программу My Logboard Logger в Visual Basic 6

и найдено, что была ошибка

Без этого выполнения я не получаю ошибку

Метод "~" Объект "~" Не удалось

При запуске Visual Basic 6 IDE

После запуска кода буфера обмена VB6 с помощью Ctrl F5

Начать с полной компиляции

и вылечить ошибки компиляции в коде

Но все еще с проблемой Загрузка VB6 IDE

До тех пор, пока я не поставлю - вариант явно через весь код буфера обмена

За исключением одного модуля, который был слишком большим для быстрого завершения

Но особенно в модуле класса

Что бы некоторые Undeclared Variables

и затем это вылеченное

Это личное решение и вклад в этот веб-журнал

Дополнительное обновление и редактирование здесь

После чтения 3 тем этого вопроса Один из здесь о буфере обмена fooobar.com/info/196902/...

и я снова заметил повторение теста снова

Как это мой код буфера обмена

и я был ранен в VB6 IDE. Использование буфера обмена при загрузке, особенно когда Перенос буфера обмена в код

и я сделал код Перехват загрузки VB6 IDE растрового изображения и верните то, что было раньше.

Теперь мне нужно быть более внимательным в своем коде и ждать, пока экран заставки закончится с помощью "Findwindow"

Думаю, я решил, что сейчас

У меня есть профессионально написанный исходный код ClipBoard, который я считаю использующим API

То, что я охотился и еще не использовал

Это кажется болью в моем коде, который я должен искать

For i = -30000 To 32000
    i2 =  Clipboard.GetFormat(i)
Next

Для проверки, если False

Для объекта ClipBoard-ed в конструкторе форм

Таким образом, они не подвергаются калекам или мешают моей программе кода.

Мой программный код ClipBoard - это единственная долгосрочная программа, которую я всегда запускаю

Для ClipBoards с интернет-страниц

и он берет/записывает клип с картинками Бит-карты скриншотов и вещей, хранящихся в файлах даты и времени

Я бы хотел узнать больше о том, как получить информацию о перетаскивании и обрезке

Надеюсь, что это поможет

2015 авг. 14 8 утра 9 утра