在我的项目中,我将一个byte []从C#传递给C ++ CLR函数。
C ++ CLR代码:
void TestByteArray(array<System::Byte>^ byteArray)
{
...
}
C#代码:
byte[] bytes = new byte[128];
...
TestByteArray(bytes);
在TestByteArray()函数中,我需要将byteArray转换为char *,以便我可以在本机C ++代码中使用它。我该如何进行此类转换?
答案 0 :(得分:18)
void TestByteArray(array<System::Byte>^ byteArray)
{
pin_ptr<System::Byte> p = &byteArray[0];
unsigned char* pby = p;
char* pch = reinterpret_cast<char*>(pby);
// use it...
}
答案 1 :(得分:0)
您正在寻找Encoding.GetChars()方法