Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / Com меня не слушается (C++ Builder 5) / 5 сообщений из 5, страница 1 из 1
28.02.2003, 09:20
    #32112487
cpp
cpp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Com меня не слушается (C++ Builder 5)
Здравствуйте!
Делаю раз: File->New->ActiveX->ComObject (TTest).
Делаю два: в редакторе библиотеки типов создаю метод Metod1, возвращающий VARIANT.
Делаю три: Строитель генерит код -
Код:

/////////////////////////////////////////////////////////////////////////////
// TTTestImpl

TVariant STDMETHODCALLTYPE TTTestImpl::Method1()
{
return "test";
}


Делаю четыре: компилирую, регистрирую - OK!
Делаю пять: в Excel ставлю ссылку и пишу код -
Код:

Dim obj as TTest 'OK
Set obj = new TTest 'OK
var = obj.Method1() 'OK, но var почему-то empty
Set obj = Nothing 'ERROR - Excel допустил ошибку "Нет данных" и будет закрыт...


Что это и куда рыть???
Снова спасибо!
...
Рейтинг: 0 / 0
28.02.2003, 11:44
    #32112610
Предводитель команчей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Com меня не слушается (C++ Builder 5)
Физкульт-привет, cpp .
Попробуйте сделать так.
В редакторе библиотеки добавте новый метод (например Metod), на странице Parameters задайте новый параметр с типом BSTR* (допустим он наз. param), Modifier->Parameter Flag установите в out и retval.
Реализация следующая :

STDMETHODIMP Metod::(BSTR* param)
{
WideString val = "test";
*param = val.Detach();
return S_OK;
}

Попробуйте так-же вызвать этот метод не из Excel, а из клиента (может сам COM и работает, а траблы с Excel).

Удачи.
...
Рейтинг: 0 / 0
20.03.2003, 11:51
    #32123571
Denwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Com меня не слушается (C++ Builder 5)
Описание интерфейса в студию.
...
Рейтинг: 0 / 0
21.03.2003, 09:19
    #32124314
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Com меня не слушается (C++ Builder 5)
Код: plaintext
TVariant STDMETHODCALLTYPE TTTestImpl::Method1() 


TVariant это конечно круто - но вот только в COM все методы ДОЛЖНЫ и МОГУТ возвращать только HRESULT

Делайте как говорит Предводитель команчей
...
Рейтинг: 0 / 0
21.03.2003, 09:22
    #32124320
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Com меня не слушается (C++ Builder 5)
Возврат HRESULT это элемент идеологии COM - там нет исключений - все ошибка возвращаются только через HRESULT, в то же время, например, в CORBA - исключения есть
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Com меня не слушается (C++ Builder 5) / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]