Есть массив:
$ma = array(1,0,2);
его нужно передать функции из DLL'ки в виде SAFEARRAY(VT_ARRAY|VT_R8).
Структура SAFEARRAY:
typedef struct tagSAFEARRAY
{
USHORT cDims; // количество измерений массива
USHORT fFeatures; // набор флагов, определяющих атрибуты массива
USHORT cbElements; // размер элементов массива
USHORT cLocks; // счетчик ссылок, указывающий количество блокировок, наложенных на массив
USHORT handle; // не используется
PVOID pvData; // указатель на данные массива
SAFEARRAYBOUND rgsabound[1];
} SAFEARRAY;
typedef struct tagSAFEARRAYBOUND
{
ULONG cElements; // число элементов массива
LONG lLbound; // нижняя граница
} SAFEARRAYBOUND;
Делаю так:
$ma = new VARIANT(array(1, 0, 2) , VT_ARRAY|VT_R8);
Как теперь собрать чтоб это было SAFEARRAY?
Если передавать в таком виде, то
$obj = new COM("CCC.Main");
$obj->SourceSeries = $ma;
НЕ принимает. Подскажите, пожалуйста.
Буду благодарен за любой совет