将[out]数组传递给C ++函数

时间:2013-01-25 12:10:31

标签: c++ arrays c++-cli managed-c++ out-parameters

我有一个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);

1 个答案:

答案 0 :(得分:0)

您有理由期望array<unsigned char>^ %bits可以转换为vector<char> &bits吗?

您可以尝试修改MyCppClass,添加一个返回对静态向量的引用的成员。在GetBits中,您可以清除它,并迭代通过向其添加字符的位。您可能还会发现Marshaling in C++有用。