0

我有一个 C++\CLI 托管类方法,它取出一个数组。我想将这个输出数组传递给底层 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);
4

1 回答 1

0

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

您可以尝试修改MyCppClass,添加一个返回对静态向量的引用的成员。在 GetBits 中,您可以清除它,并遍历将字符添加到其中的位。您可能还会发现C++ 中的编组很有用。

于 2013-01-25T12:29:07.860 回答