У меня есть метод управляемого класса C ++ \ CLI, который принимает массив out. Я хочу передать этот массив в базовую функцию C ++, которая принимает вектор< символ>&, Эта функция C ++ заполняет массив значениями.
bool MyLib::GetBits([Out] array<unsigned char>^ %bits)
{
MyCppClass->GetBits(bits); // ????
// ERROR: C2664: cannot convert from 'cli::array<Type> ^' to 'std::vector<_Ty> &'
}
'GetBits' is declared as MyCppClass::GetBits(vector<char> &bits);
Есть ли у вас основания ожидать, что array<unsigned char>^ %bits
может быть преобразован в vector<char> &bits
?
Вы можете попробовать изменить MyCppClass
, добавив член, который возвращает ссылку на статический вектор. В GetBits вы можете очистить его и перебирать биты, добавляя к нему символы. Вы также можете найти Маршалинг в C ++ полезно.
Других решений пока нет …