2011-10-10 16 views
7

En mi proyecto, paso un byte [] de la función C# a C++ CLR. códigoCómo convertir una matriz <System :: Byte> a char * en C++ CLR?

C++ CLR:

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

código C#:

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

En la función TestByteArray(), necesito convertir bytearray a char *, de modo que pueda utilizado en C código nativo ++ . ¿Cómo puedo hacer tal conversión?

Respuesta

14
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

Funciona, gracias! – Spark

0

Usted está buscando el Encoding.GetChars() Método

+1

No, eso sería para 'wchar_t' (el equivalente de C++ a' System :: Char'). –

Cuestiones relacionadas