本文共 739 字,大约阅读时间需要 2 分钟。
写一个项目的时候从devcpp转到vs2010,发现很多地方使用到宽字符的,在网上找了一个很好用的方法,转载过来
string 转 wstirng
wstring StringToWString(const string& s)
{ wstring wszStr; int nLength = MultiByteToWideChar( CP_ACP, 0, s.c_str(), -1, NULL, NULL ); wszStr.resize(nLength); LPWSTR lpwszStr = new wchar_t[nLength]; MultiByteToWideChar( CP_ACP, 0, s.c_str(), -1, lpwszStr, nLength ); wszStr = lpwszStr; delete [] lpwszStr; return wszStr; }wstring 转 string
string WStringToString(const wstring& s){
string szStr; int nLen = WideCharToMultiByte(CP_OEMCP,NULL,s.c_str(),-1,NULL,0,NULL,FALSE); szStr.resize(nLen); LPSTR lpszStr = new char[nLen]; WideCharToMultiByte(CP_OEMCP,0,s.c_str(),-1,lpszStr,nLen,NULL,FALSE); szStr = lpszStr; delete[] lpszStr; return szStr; }以后转换字符的时候贴上这段代码就可以了