2011-12-20 3 views
12

я заметил, что почти каждый третий раз или я так запустить VB6 IDE, появится сообщение со следующим сообщением об ошибке: -«Метод„~“объекта '~» Ошибка при запуске VB6 IDE

Method '~' of object '~' failed 

Это не происходит ни для какого конкретного проекта, ни для каких-либо других вещей, которые я заметил. Это не появляется, чтобы вызвать проблемы после отклонения сообщения. Мой вопрос: должен ли я беспокоиться об этом, и если да, что мне делать с этим.

Я также принял к сведению эти другие вопросы о том же сообщении об ошибке here, 4444079427197908, и я получил сообщение об открытии проекта.

+4

У вас есть какие-либо дополнения? - возможно, стоит попробовать отключить любые необычные, которые у вас есть, там есть проблема. –

+0

@JonEgerton, да, у меня есть. Спасибо за совет; Я попробую. –

ответ

3

Раньше я случайно сталкивался с этой ошибкой, и в моем случае это было вызвано надстройкой надстройки Visual Source Safe (плохая установка, я думаю, переустановка исправила проблему). Это никогда не вызывало проблемы; это было просто беспокойство. Как сказал Джон в комментариях, я бы попытался отключить надстройки, чтобы проверить, устраняет ли это проблему. Другое дело - убедиться, что вы используете Service Pack 6.

+0

Спасибо; это надстройка, а это значит, что мне не нужно беспокоиться об этом. –

3

Обычно это вызвано заблокированным буфером обмена на локальной машине. Надстройки VB6 IDE используют буфер обмена для копирования/вставки значков на кнопки панели инструментов, потому что API-интерфейс надстройки не предоставляет другого способа размещения изображения.

Обычно клиент удаленного рабочего стола (mstsc.exe) является виновником заблокированного буфера обмена. Способ, которым Microsoft реализовал передачу в удаленный буфер обмена, - это локальный буфер обмена для доступных форматов, которые блокируют его на некоторое время. Буфер обмена - это ужасно разработанный глобальный ресурс, к которому можно получить доступ по одному процессу за раз, а API-интерфейс OpenClipboard не работает в пламени для других процессов, если ресурс в настоящее время недоступен.

1

Я удалил Visual Studio 6.0, а затем снова установил его. Это очистило ошибку «Method» ~ «object» ~ «failed» для меня. Теперь мой VB 6 работает нормально. Я считаю, что в моем случае это связано с тем, что некоторые из COM-объектов не зарегистрированы должным образом. Моя новая машина получила изображение-призрак из моей старой коробки, на которой было VS.

1

Я начал получать эту ошибку внезапно на обеих моих машинах разработки (один 32-разрядный, другой 64-разрядный). В моем поиске решения кто-то сделал тангенциальную ссылку на SourceSafe.

Ahh, тогда мне пришло в голову, что я недавно очистил проект (очистка файлов .bak и т. Д.), И один из файлов, которые я очистил, был «MSSCCPRJ.SCC» (видя, как SourceSafe была - для нашей группы - далекой реликвии, я чувствовал себя «безопасным» удалением этого файла из папки проекта).

Краткая история: восстановление файла «MSSCCPRJ.SCC» в папку проекта, устранена эта ошибка.

1

Я только что наткнулся на эту ошибку во время работы VB6 на Windows Server 2012 R2. Нарушением надстройки был Visual Component Manager 6.0. Как только я отключил это, IDE смог открыть без проблемы Method '~' of object '~' failed. Я не уверен, что это указывает на проблему установки или просто «древнее» программное обеспечение на «современной» ОС.

Для всех, кто пытается установить VB6 в Windows 7, 8, 10, 2012 и т. Д., Вот некоторые полезные ссылки:

http://www.fortypoundhead.com/newbrowseresults.asp?catid=34

http://it.toolbox.com/blogs/locutus/how-to-install-visual-studio-6-onto-windows-10-70155

0

Я не знаю об этой конкретной ошибке, но у меня есть некоторые базовые сведения об этом сообщении об ошибке.

COM определяет два уровня информации об ошибках. Все COM-методы и свойства имеют возвращаемое значение с типом HRESULT, где 0 (S_OK) указывает на успешность, а отрицательные значения указывают на ошибку. Кроме того, существует механизм предоставления так называемой «богатой информации об ошибках».

Если COM-объект генерирует большую информацию об ошибках, VB6 покажет предоставленную информацию. Если COM-объект возвращает отрицательное значение, но не предоставляет богатую информацию об ошибках, тогда VB6 показывает сообщение «Method» ~ 'объекта' ~ 'failed ".

Существуют некоторые стандартные коды ошибок, такие как E_POINTER и E_NOTIMPL, которые часто возвращаются COM-объектами в C++. Все это приводит к появлению сообщения «Метод« ~ »объекта« ~ ».

Если вы реализуете COM-объект в C++, мой совет заключается в том, чтобы всегда генерировать важную информацию об ошибках. (В ATL вам просто нужно вызвать функцию «Ошибка».)

Смежные вопросы