如何在 C++ CLR 中将数组<System::Byte> 转换为 char*?
Posted
技术标签:
【中文标题】如何在 C++ CLR 中将数组<System::Byte> 转换为 char*?【英文标题】:How to convert array<System::Byte> to char* in C++ CLR? 【发布时间】:2011-10-10 02:24:07 【问题描述】:在我的项目中,我将一个字节[] 从 C# 传递给 C++ CLR 函数。
C++ CLR 代码:
void TestByteArray(array<System::Byte>^ byteArray)
...
C#代码:
byte[] bytes = new byte[128];
...
TestByteArray(bytes);
在 TestByteArray() 函数中,我需要将 byteArray 转换为 char*,以便可以在原生 C++ 代码中使用它。我该如何进行这种转换?
【问题讨论】:
【参考方案1】: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...
【讨论】:
【参考方案2】:您正在寻找Encoding.GetChars() 方法
【讨论】:
不,那将用于wchar_t
(C++ 等价于System::Char
)。以上是关于如何在 C++ CLR 中将数组<System::Byte> 转换为 char*?的主要内容,如果未能解决你的问题,请参考以下文章