//Ascii字符转换为Unicode字符 std::wstring MutilByteToWide(std::string& _src) { int nBufSize = MultiByteToWideChar(GetACP(),0,_src.c_str(),-1,NULL,0); wchar_t *wsBuf = new wchar_t[nBufSize]; MultiByteToWideChar(GetACP(),0,_src.c_str(),-1,wsBuf,nBufSize); std::wstring wstrRet(wsBuf); delete []wsBuf; wsBuf = NULL; return wstrRet; }
wstring b2w(const string& _src) { //计算字符串 string 转成 wchar_t 之后占用的内存字节数 int nBufSize = ::MultiByteToWideChar(GetACP(),0,_src.c_str(),-1,NULL,0); //为 wsbuf 分配内存 BufSize 个字节 wchar_t *wsBuf = new wchar_t[nBufSize + 1]; //转化为 unicode 的 WideString ::MultiByteToWideChar(GetACP(),0,_src.c_str(),-1,wsBuf,nBufSize); wstring wstrRet(wsBuf); delete []wsBuf; wsBuf = NULL; return wstrRet; }