Converting managed System::String to std::string in C++/CLI [duplicate]

我的梦境 提交于 2020-01-06 14:53:28

问题


I am having problem with converting managed System::String to std::string in C++/CLI. This code does not work, I can't understand why:

string SolvingUnitWrapper::getName(String ^name)
{
    pin_ptr<const wchar_t> wstr = PtrToStringChars(name);
    ostringstream oss;
    oss << wstr; 
    return oss.str();
}

Thanks


回答1:


try this:

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;  
}


来源:https://stackoverflow.com/questions/17789807/converting-managed-systemstring-to-stdstring-in-c-cli

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!