Как преобразовать массив в char* в C CLR?

#c# #c #c -cli

#c# #c #c -cli

Вопрос:

В моем проекте я передаю байт[] из C # в функцию CLR C .

Код 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 = amp;byteArray[0];
    unsigned char* pby = p;
    char* pch = reinterpret_cast<char*>(pby);

    // use it...
}
  

Ответ №2:

Комментарии:

1. Нет, это было бы для wchar_t (эквивалент C System::Char ).