Postupy: Převod řetězce typu char * na pole System::Byte
Nejúčinnějším způsobem, jak převést řetězec char * na pole Byte, je použít třídu Marshal.
Příklad
// convert_native_string_to_Byte_array.cpp
// compile with: /clr
#include <string.h>
using namespace System;
using namespace System::Runtime::InteropServices;
int main() {
char buf[] = "Native String";
int len = strlen(buf);
array< Byte >^ byteArray = gcnew array< Byte >(len + 2);
// convert native pointer to System::IntPtr with C-Style cast
Marshal::Copy((IntPtr)buf,byteArray, 0, len);
for ( int i = byteArray->GetLowerBound(0); i <= byteArray->GetUpperBound(0); i++ ) {
char dc = *(Byte^) byteArray->GetValue(i);
Console::Write((Char)dc);
}
Console::WriteLine();
}
Native String
Viz také
Referenční dokumentace
Použití zprostředkovatele komunikace C++ (implicitní služba PInvoke)