Re: Использование com коллекций написанных на visual basic
От: Vi2 Удмуртия http://www.adem.ru
Дата: 27.01.06 07:23
Оценка:
Здравствуйте, sammael, Вы писали:

S>Есть обект коллекция (часть компонента написанного на visual basic) в basic для доступа к элементам используется конструкция foreach

S>...
S>Мне интересно как оборачивает basic конструкцию foreach и как можно получить доступ к элементу коллекции из с++

Никак не оборачивает: конструкция foreach — это VB'шный доступ к енумератору коллекции (т.е. к интерфейсу IEnumVARIANT), в котором VB перебирает элементы коллекции по одному (т.е. obj->Next(1, &buffer)).

У тебя проблемы с инициализацией VARIANT-ов: перед передачей их в VB, нужно им присвоить какие-нибудь начальные данные.
В первом случае каждому элементу arrVariant присвоить arrVariant[i].vt = VT_EMPTY или вызвать VariantInit(arrVariant + i).
Во втором случае нужно присвоить тип значения в VARIANT v.vt = VT_I4.
Именно поле vt варианта отвечает за то, инициализирован ли он и что хранит. Если там будет случайное число, то и сообщения об ошибках будут разнообразными.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.