In my project, I pass a byte[] from C# to C++ CLR function.
C++ CLR code:
void TestByteArray(array^ byteArray) { ... } >
void TestByteArray(array^ byteArray) { ... }
void TestByteArray(array^ byteArray) { pin_ptr p = &byteArray[0]; unsigned char* pby = p; char* pch = reinterpret_cast(pby); // use it... }