2011-10-10 7 views
7

W moim projekcie przekazuję bajt [] z funkcji C# do C++ CLR. KodJak przekonwertować tablicę <System :: Byte> na char * w C++ CLR?

C++ CLR:

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

C# Kod:

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

W funkcji TestByteArray(), muszę konwertować tablicaBitowa char *, tak, że można stosować go w macierzystym C++ kod . Jak mogę wykonać taką konwersję?

Odpowiedz

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

to działa, dzięki! – Spark

Powiązane problemy