1
我使用這些轉換編組 - 轉換的std ::矢量<char>到字符串^並且相反地
//矢量爲字符串2方法。
VectorToString(std::vector<char> data)
{
const char* newData = &data[0];
String ^result;
result = marshal_as<String^>(newData);
return result;
}
//字符串到矢量
StringToVector(String^data)
{
marshal_context ctx;
IntPtr p = Marshal::StringToHGlobalAnsi(data);
const char* pAnsi = static_cast<const char*>(p.ToPointer());
// use pAnsi
std::vector<char> result;
result.assign(pAnsi, pAnsi + strlen(pAnsi));
Marshal::FreeHGlobal(p);
return result;
}
用2以上功能我可以做轉換。 你能告訴我這些轉換是否正確?或不? 實際上,這種方式將std :: vector轉換爲String是最好的方法嗎?
:: string'? 'marshal_as'支持這些開箱即用。 'StringToHGlobalAnsi' /'FreeHGlobal'非常笨重,你可以'marshal_as'然後複製到矢量,如果你真的需要的話。 –