невозможно преобразовать параметр 1 из 'char [25]' в 'SAFEARRAY *'

У меня есть char sendBuf[sizeof(double)*3 + 1]; в моем коде С++.

Мой метод кода С# com Multicast( byte[] message) принимает массив байтов в качестве аргумента.

так почему же вызов Multicast (sendBuf) не выдает эту ошибку cannot convert parameter 1 from 'char [25]' to 'SAFEARRAY *'

это не массив символов, а массив байтов в c/c++

также как мне преобразовать этот char * в safearray?

Я попытался

SAFEARRAYBOUND bound[1] = {25, 0};
SAFEARRAY * psa = SafeArrayCreate(VT_UI1, 1, bound);

for(int i = 0; i <25; i++){
SafeArrayPutElement(psa, &i, sendBuf[i]);   

но получить cannot convert parameter 2 from 'int *' to 'LONG *' за SafeArrayPutElement


person Community    schedule 13.03.2012    source источник


Ответы (1)


Документация по API SAFEARRAY

Начните с SafeArrayCreateVector.

person Ben Voigt    schedule 13.03.2012