如何实现cocos2d-x开发中wstring和string的转换-创新互联

本篇文章给大家分享的是有关 如何实现cocos2d-x开发中wstring和string的转换 ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

目前创新互联建站已为近千家的企业提供了网站建设、域名、虚拟空间、网站改版维护、企业网站设计、宣州网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

cocos2d-x开发中汉字操作技术是必须要面对的,其中可能要用到wstring和string的相互转换。我在网络上搜索到的能够应用于android
和WIN32(其他的平台没有试)环境下的汉字的可选方案是使用如下两个函数:

wstring转换为string代码如下:

std::string ws2s(const std::wstring& ws)
{
  string curLocale = setlocale(LC_ALL, NULL);
  setlocale(LC_ALL, "chs"); 
  const wchar_t* _Source = ws.c_str();
  size_t _Dsize = 2 * ws.size() + 1;
  char *_Dest = new char[_Dsize];
  memset(_Dest,0,_Dsize);
  wcstombs(_Dest,_Source,_Dsize);
  std::string result = _Dest;
  delete []_Dest;
  setlocale(LC_ALL, curLocale.c_str());
  return result;
}

string转换为wstring:
std::wstring s2ws(const std::string& s)
{
    setlocale(LC_ALL, "chs"); 
    const char* _Source = s.c_str();
    size_t _Dsize = s.size() + 1;
    wchar_t *_Dest = new wchar_t[_Dsize];
    wmemset(_Dest, 0, _Dsize);
    mbstowcs(_Dest,_Source,_Dsize);
    std::wstring result = _Dest;
    delete []_Dest;
    setlocale(LC_ALL, "C");
    return result;
}
or

string a = "xxxx";
wstring b(a.begin(), a.end());

以上就是 如何实现cocos2d-x开发中wstring和string的转换 ,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站标题:如何实现cocos2d-x开发中wstring和string的转换-创新互联
本文地址:http://pwwzsj.com/article/cscdie.html