Как преобразовать массив <System :: Byte> в char * в C ++ CLR? - PullRequest
9 голосов
/ 10 октября 2011

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

C ++ CLR код:

void TestByteArray(array<System::Byte>^ byteArray)
{
    ...
}

C # код:

byte[] bytes = new byte[128];
...
TestByteArray(bytes);

В функции TestByteArray () мне нужно преобразовать byteArray в char *, чтобы я мог использовать его в собственном коде C ++. Как я могу сделать такое преобразование?

Ответы [ 2 ]

18 голосов
/ 10 октября 2011
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...
}
0 голосов
/ 10 октября 2011

Вы ищете Encoding.GetChars () Метод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...