我遇到在C ++ / CLI中将托管的System :: String转换为std :: string的问题。 这段代码不起作用,我无法理解为什么:
string SolvingUnitWrapper::getName(String ^name)
{
pin_ptr<const wchar_t> wstr = PtrToStringChars(name);
ostringstream oss;
oss << wstr;
return oss.str();
}
由于
答案 0 :(得分:4)
试试这个:
std::string managedStrToNative(System::String^ sysstr)
{
using System::IntPtr;
using System::Runtime::InteropServices::Marshal;
IntPtr ip = Marshal::StringToHGlobalAnsi(sysstr);
std::string outString = static_cast<const char*>(ip.ToPointer());
Marshal::FreeHGlobal(ip);
return outString;
}