CString和string在unicode与非unicode下的相互转换(转)

Posted ~小小鸟~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CString和string在unicode与非unicode下的相互转换(转)相关的知识,希望对你有一定的参考价值。

原文转自 http://blog.csdn.net/u014303844/article/details/51397556

 

CString和string在unicode与非unicode下的相互转换

最近想写一个手机控制电脑的玩具,涉及到了socket通信,数据采用json通用格式,首先是jsoncpp的编译问题太烦了,然后还有更烦的,java中的String多容易的玩意儿,然后到了c/c++/mfc中超级烦,搜索了很久的攻略,用了大把的时间,最后写了个这玩意儿出来,或许可以帮助到一些需要此的道友们哈

string toString(CString cs)
{
#ifdef _UNICODE  
    //如果是unicode工程
    USES_CONVERSION;
    std::string str(W2A(cs));
    return str;
#else  
    //如果是多字节工程
    std::string str(cs.GetBuffer());
    cs.ReleaseBuffer();
    return str;
#endif // _UNICODE   
}

CString toCString(string str)
{
#ifdef _UNICODE  
    //如果是unicode工程  
    USES_CONVERSION; CString s(str.c_str());
    CString ans(str.c_str());
    return ans;
#else  
    //如果是多字节工程
    //string 转 CString
    CString ans;
    ans.Format("%s", str.c_str());
    return ans;
#endif // _UNICODE
}

 

以上是关于CString和string在unicode与非unicode下的相互转换(转)的主要内容,如果未能解决你的问题,请参考以下文章

Convert CString to ANSI string in UNICODE projects

string,char*及CString类型的相互转换

VC++ 6.0当中,CString和string这两种类型有啥区别?

带有 MSVC++ 2012 的 Unicode

CString Unicode 转 UTF-8

Android - 我啥时候应该在 Strings.xml 资源文件中转义 unicode?