|
Сущность технологии СОМ. Библиотека программистаЕсли открытый массив будет использоваться в качестве входного/выходного параметра, то следует указать переменную длину массива в каждом направлении. Если число элементов на входе может отличаться от числа элементов на выходе, то параметр переменной длины тоже должен иметь входной/выходной тип: HRESULT Method17([in] long cMax, [in, out] long *pcActual, [in, out, size_is(cMax), length_is(*pcActual)] short *rgs); что предполагает следующий код на стороне клиента: void f(IFoo *pFoo) { short rgs[8]; rgs[0] = 0; rgs[1] = 1; long cActual = 2; pFoo->Method17(8, &cActual, rgs); // .. process first cActual elements of rgs // .. обрабатываем первые cActual элементов из массива rgs } Если число элементов на входе и на выходе одно и то же, то подойдет совместимый массив: HRESULT Method18([in] long cElems, [in, out, size_is(cElems)] short *rgs); Данный метод использует эффективность совместимого массива, и его гораздо проще использовать. Приведенные выше примеры оперировали с одномерными массивами. Рассмотрим следующий прототип на С: void g(short **arg1); Этот прототип может означать в С все, что угодно ...» | Код для вставки книги в блог HTML
phpBB
текст
|
|