managed→unmanaged でのデータ管理
managedのbyte[]と、unmanagedのchar*を相互変換する方法
unmanaged→managedの場合
char value[256]; 〜 size_t len = strlen(value); System::Byte bytes[] = new System::Byte[len]; System::Runtime::InteropServices::Marshal::Copy(value, bytes, 0, len);
結果がmanagedデータなので、開放はGC任せでOK
managed→unmanagedの場合
System::Byte bytes[] = 〜; int len = bytes->Length; char* str = new char[len + 1]; System::Runtime::InteropServices::Marshal::Copy(bytes, 0, str, len); str[len] = '\0';
そして、使い終わったら開放
delete[] str;