在我的项目中,我将一个 byte[] 从 C# 传递到 C++ CLR 函数。
C++ CLR 代码:
void TestByteArray(array<System::Byte>^ byteArray)
{
...
}
C#代码:
byte[] bytes = new byte[128];
...
TestByteArray(bytes);
在 TestByteArray() 函数中,我需要将 byteArray 转换为 char*,以便我可以在 native C++ 代码中使用它。我怎样才能进行这样的转换?
最佳答案
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...
}
关于c# - 如何在 C++ CLR 中将数组 <System::Byte> 转换为 char*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7707985/