string与wstring的互相转换接口(Windows版本)
std::wstring stringToWstring( const std::string & str ) { LPCSTR pszSrc = str.c_str(); int nLen = MultiByteToWideChar( CP_ACP, 0, pszSrc, -1, NULL, 0 ); if ( nLen == 0 ) return(std::wstring( L"" ) ); wchar_t* pwszDst = new wchar_t[nLen]; if ( !pwszDst ) return(std::wstring( L"" ) ); MultiByteToWideChar( CP_ACP, 0, pszSrc, -1, pwszDst, nLen ); std::wstring wstr( pwszDst ); delete[] pwszDst; pwszDst = NULL; return(wstr); } std::string wstringToString( const std::wstring & wstr ) { LPCWSTR pwszSrc = wstr.c_str(); int nLen = WideCharToMultiByte( CP_ACP, 0, pwszSrc, -1, NULL, 0, NULL, NULL ); if ( nLen == 0 ) return(std::string( "" ) ); char* pszDst = new char[nLen]; if ( !pszDst ) return(std::string( "" ) ); WideCharToMultiByte( CP_ACP, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL ); std::string str( pszDst ); delete[] pszDst; pszDst = NULL; return(str); }