2011-10-10 6 views
7

私のプロジェクトでは、C#のバイト[]をC++のCLR関数に渡します。配列<System :: Byte>をC++ CLRのchar *に変換するには?

C++ CLRコード:

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

C#コード:TestByteArray()関数で

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

、私は、ネイティブC++コードでそれを使用できるように、char *にByteArrayの変換必要。どうやってそのような変換を行うことができますか?

答えて

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

0

あなたはEncoding.GetChars()方法

+1

いいえ、それは 'wchar_t'(C++は' System :: Char'と同等)になります。 –

関連する問題