E_NOINTERFACE после обновления VB6 - PullRequest
1 голос
/ 28 октября 2008

После обновления приложения на основе VB 6, предоставляющего интерфейс COM, Клиенты COM (в .NET), созданные с использованием предыдущей версии, получают ошибки E_NOINTERFACE.

Сообщение об ошибке (переведено) Невозможно преобразовать COM-объект типа AProduct.AClass в интерфейс типа AProduct._AClass ...

Что здесь пошло не так?

В чем причина ошибки E_NOINTERFACE?

Я думал , что после публикации интерфейса в COM его нельзя изменить; должен быть опубликован новый интерфейс (с уникальным UUID), который может наследовать старый, поэтому я решил, что интерфейс мог быть обновлен (расширен) неправильно.

1 Ответ

1 голос
/ 30 октября 2008

Что такое настройка совместимости версий в вашем проекте VB 6.0? (См. Вкладку «Компонент» в свойствах вашего проекта)

Если это не двоичная совместимость, то GUID для интерфейсов и событий, предоставляемых вашим компонентом, могли быть изменены при компиляции DLL.

Проверьте эти ресурсы для получения дополнительной информации

Как использовать проект и двоичную совместимость

Настройка проекта компонента COM в Visual Basic 6.0

...