宽窄字符相互转换

来源:互联网 发布:rar解压软件 编辑:程序博客网 时间:2024/04/27 14:10

 std::string WCharToChar(UINT PageCode, std::wstring strWChar)
{
 std::string strChar="";
 strChar.clear();
 int ret = 0;
 int nSize = (int)strWChar.length()*2;
 static char pszDest[1024*10];
 if( pszDest )
 {
  memset( pszDest, 0, nSize+1 );
  ret = WideCharToMultiByte(PageCode,NULL,strWChar.c_str(),-1,pszDest,nSize,NULL,FALSE);
  pszDest[nSize] = '/0';
  strChar = pszDest;
 }
 return strChar;

}

std::wstring CharToWChar(UINT PageCode, std::string strChar)
{
 std::wstring strWChar=_T("");
 strWChar.clear();
 int ret = 0;
 //wchar_t *pszDest = new wchar_t[strChar.length()+1];
 static wchar_t pszDest[1024*10];
 if( pszDest )
 {
  memset( pszDest, 0, (strChar.length()+1)*sizeof(wchar_t) );
  ret = MultiByteToWideChar(PageCode, 0, strChar.c_str(), -1, pszDest, (int)strChar.length());
  pszDest[strChar.length()] = L'/0';
  strWChar = pszDest;
 }
 return strWChar;
}

原创粉丝点击