Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Com, мАССИВЫ с сЕРВЕРА

6.5K
29 января 2004 года
kit75
1 / / 29.01.2004
Народ, help.
В интерфейсе COM-сервера определяю HRESULT IMyIntf::func(VARIANT* pvar /*out,retval*/). При вызове она создает psa=safearray, забивает массив данными, pvar->vt = VT_ARRAY|VT_I4, pvar->parray = psa.

А на клиенте бардак.
При вызове серверной функции func(..) массив действительно перекачивается к клиенту - массив 4 метра хорошо виден в Task Manager когда проходишь все дебагером. Но при завершении функции-оболочки IMyIntfDist::func(VARIANT* pvar) вызывается деструктор класса TAutoArgs, через который по Borland'у передаются все параметры, и полученный массив грохается. Виной этому TVariantT::~TVariant() {::ClearVariant(this); } вызываемый попутно кодом борландовского шаблона.
Но это-же не правильно. Или это я неправильный :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог