Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > Работа с массивами в Variant


Автор: mrco 15.5.2008, 09:26
Работаю с ADO, получаю записи из рекодсета. Несколько записей представлено в бинарном виде (массив байтов). И никак не получается этот массив получить в С++. Сначала проверял работу в Excel VBA

Код

Dim abArray() As Byte
abArray = rec.fields("Info.Prod.Code").value;


и этот код работает. Пытаюсь сделать аналог в С++:

Код

long idx = 0;
value = rec->Fields->GetItem("Info.Prod.Code")->Value;
SAFEARRAY *res = value.parray;
hr = SafeArrayLock( res );
hr = SafeArrayGetElement( res, &idx, &q );
hr = SafeArrayUnlock( res );


не работает (собственно value.parray указывает на забитый мусором участок памяти). Как правильно сделать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)