Я нашел этот действительно хороший кусок кода, который преобразует строку в System:String^
как в:
System::String^ rtn = gcnew String(move.c_str()); // 'move' here is the string
Я передаю RTN обратно в программу на C #. В любом случае, внутри функции, в которой существует этот код, я передаю System::String^
. Я также нашел некоторый код для преобразования System:String^
в строку, используя следующий код:
pin_ptr<const wchar_t> wch = PtrToStringChars(cmd); // 'cmd' here is the System:String
size_t convertedChars = 0;
size_t sizeInBytes = ((cmd->Length + 1) * 2);
errno_t err = 0;
char *ch = (char *)malloc(sizeInBytes);
err = wcstombs_s(&convertedChars,ch, sizeInBytes,wch, sizeInBytes);
Теперь я могу использовать 'ch' в качестве строки.
Однако, похоже, это гораздо больше, чем преобразование другим способом с использованием gcnew
. Итак, наконец, мой вопрос: есть ли что-то, что преобразует System::String^
в строку, аналогично способу gcnew?