как я должен конвертировать VAriant из C ++ в C # - PullRequest
2 голосов
/ 18 апреля 2011

Hy!У меня есть следующий код в Visual C ++ 6, и я хочу преобразовать его в C #.

SAFEARRAY * psa =   NULL;
SAFEARRAYBOUND rgsabound;
rgsabound.lLbound = 0;  
rgsabound.cElements = infoList.GetCount();
psa = SafeArrayCreate(VT_BSTR, 1, &rgsabound);
    ......

VARIANT listaF;
V_VT(&listaF) = VT_ARRAY|VT_BSTR;
listaF.parray   =   psa;

Может кто-нибудь мне помочь?

1 Ответ

1 голос
/ 21 апреля 2011

safearray - это массив в COM / OLE (см. Ссылку в Sanjeevakumar Hiremath ), BSTR - это строка COM / OLE. вариант - это общая структура, которая может хранить множество типов данных.

То, что у вас есть, - это защитная оболочка BSTR, завернутая в ВАРИАНТ. В C # вы можете представить что-то вроде этого с помощью простого массива строк.

string[] listaF = new string[infoList.GetCount()];

удачи.

...