Ошибка: 'New' cannot be used on an interface.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Ошибка: 'New' cannot be used on an interface.

Сообщение lord0n » 22.01.2007 (Пн) 10:00

Добрый день.
Проблема такая:
Нужно подключиться к ком-объекту используя раннее связывание
То есть не применяя конструкцию
Код: Выделить всё

Dim MyApplication As Object
MyApplication = CreateObject( "SAPERION.Application")


а вот так:
Код: Выделить всё

Dim a As Saperion.IApplication
a = New Saperion.IApplication


Но когда начинаешь набирать "a = New Saperion.IApplication" в выпадающем списке Saperion отсутствует.
Если его вставить принудительно, то появляется ошибка:
"'New' cannot be used on an interface."
Как быть?
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 22.01.2007 (Пн) 11:05

Dim a As Saperion.IApplication
a = CreateObject( "SAPERION.Application")

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 22.01.2007 (Пн) 11:30

Интересная комбинация позднего и раннего связывания))))))))
Вот такая ошибка:
"Unable to cast COM object of type 'System.__ComObject' to interface type 'Saperion.IApplication'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{42A01000-7CD8-11CF-BF51-00AA0057893A}' failed due to the following error: Интерфейс не поддерживается (Exception from HRESULT: 0x80004002 (E_NOINTERFACE))."
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 22.01.2007 (Пн) 12:52

lord0n
Здесь нет ничего необычного.
А почитал ли ты написанную тобой же ошибку? Или просто скопипастил?

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 22.01.2007 (Пн) 13:32

ага, прочитал, подправил
теперь: Cannot create ActiveX component.
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 22.01.2007 (Пн) 19:07

Если COM объект подключен к проекту и для него сгенерирован прокси класс, то CreateObject использовать не нужно, а нужно создавать экземпляр прокси-класса COM объекта, как и для любого другого класса.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 23.01.2007 (Вт) 9:44

то есть написать a = New ...?
или я что то не понял
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 55

    TopList