string、wstring、CString之间的转换

来源:互联网 发布:中国最新cpi数据2017年 编辑:程序博客网 时间:2024/05/16 14:38

string转成CString

string s = "123mb";

CString str = s.c_str();


wstring转成CString

wstring wstr = "要转换的文字";

CString str = wstr.c_str();


CString转成wstring

CString str = L"mm";

wstring wstr = str.GetString();


string 转成wstring

wstring s2ws(const string& s)

{

string curLocale = setlocale(LC_ALL," ");

const char* _Source = s.c_str();

size_t _Disze = mbstowcs(NULL,_Source,0) + 1;

wchar_t  *_Dest = new wchar_t[_Disze];

wmemset(_Dest,0,_Disze);

wstring result = _Dest;

delete []_Dest;

setlocal(LC_ALL,curLocale.c_str());

return result;

}


wstring 转成 string

string ws2s(const wstring& ws)

{

string curLocal = setlocale(LC_ALL," ");

const wchar_t *  _Source = ws.c_str();

size_t   _Dsize = wcstombs(NULL,_Source,0) + 1;

memset(_Dest,0,_Dsize);

wcstombs(_Dest,_Source,_Dsize);

string result = _Dest;

delete []_Dest;

setlocale(LC_ALL,curLocale.c_str());

return result;

}

0 0