«Метод« ~ »объекта« ~ »не удалось» при запуске VB6 IDE - PullRequest
13 голосов
/ 20 декабря 2011

Я заметил, что примерно каждый третий раз, когда я запускаю IDE VB6, появляется сообщение со следующим сообщением об ошибке: -

Method '~' of object '~' failed

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

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

Ответы [ 7 ]

3 голосов
/ 20 декабря 2011

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

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

3 голосов
/ 20 декабря 2011

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

1 голос
/ 21 сентября 2018

У меня просто был такой же опыт при запуске VB6 на моем настольном ПК с Windows 7 Ultimate с помощью ярлыка для проекта VB6 (который, конечно, запускает VB6). Окно уведомления называлось «Диспетчер визуальных компонентов», и сообщение было"Метод '~' объекта '~' не выполнен".Это произошло при первом запуске среды IDE VB6 до того, как проект был виден в среде IDE.Я использую этот процесс с этим же проектом в течение нескольких лет без проблем, но сегодня это окно с сообщением появилось и должно было быть подтверждено.Одна вещь, которую я сделал по-другому сегодня, и я считаю, что это вызвало мою проблему, состояла в том, чтобы сначала запустить книгу Excel 2007, а затем запустить проект VB6 примерно через три секунды.Оба загружались одновременно, и они, вероятно, боролись друг с другом за то, что им обоим нужно.Запуск моего проекта VB6 сам по себе никогда не приводит к этому.Глядя на все эти ответы, кажется, что одна общая нить состоит в том, что VB6 не может получить доступ к некоторым ресурсам, когда они необходимы.Ни один из ответов не предполагает, что это серьезная проблема;на самом деле, это просто незначительный «сбой» до тех пор, пока ресурсы не будут освобождены.

1 голос
/ 14 октября 2016

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

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

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

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

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

1 голос
/ 14 октября 2016

Я только что столкнулся с этой ошибкой при запуске 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

1 голос
/ 15 января 2015

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

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

Короче говоря: восстановление файла 'MSSCCPRJ.SCC' в папке проекта решеноэта ошибка.

1 голос
/ 07 августа 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...