2011-10-10 236 views
7

在我的項目中,我將一個字節[]從C#傳遞給C++ CLR函數。如何在C++ CLR中將數組<System :: Byte>轉換爲char *?

C++ CLR代碼:

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

C#代碼:

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

在TestByteArray()函數,我需要轉換的ByteArray爲char *,這樣我就可以在本地C用它++代碼。我怎麼做這樣的轉換?

回答

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

它的工作原理,謝謝! – Spark

相關問題