我有一个C ++ \ CLI托管类方法,它接受一个out数组。我想将这个数组传递给带有向量<的基础C ++函数。 char>&。这个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);
答案 0 :(得分:0)
您有理由期望array<unsigned char>^ %bits
可以转换为vector<char> &bits
吗?
您可以尝试修改MyCppClass
,添加一个返回对静态向量的引用的成员。在GetBits中,您可以清除它,并迭代通过向其添加字符的位。您可能还会发现Marshaling in C++有用。