vc++宽字符转换代码.pdfVIP

  • 5
  • 0
  • 约2.03万字
  • 约 21页
  • 2019-08-11 发布于河北
  • 举报
vc宽字符转换代码

宽字符转换:宽字符转换的相关代码 疯狂代码 http://CrazyC/ ĵ http:/CrazyC/VC/Article65491.html . C中和w互转 第中思路方法:WideToMutilByte和MutilByteToWide WideToMutilByte(const w _src) { nBufSize = WideCharToMultiByte(GetACP, 0, _src.c_str,-1, NULL, 0, 0, FALSE); char *szBuf = char[nBufSize]; WideCharToMultiByte(GetACP, 0, _src.c_str,-1, szBuf, nBufSize, 0, FALSE); strRet(szBuf); delete szBuf; szBuf = NULL; strRet; } w MutilByteToWide(const _src) { // 计算串 转成 wchar_t 的后占用内存字节数 nBufSize = MultiByteToWideChar(GetACP,0,_src.c_str,-1,NULL,0); // 为 wsbuf 分配内存 BufSize 个字节 wchar_t *wsBuf = wchar_t[nBufSize]; // 转化为 unicode WideString MultiByteToWideChar(GetACP,0,_src.c_str,-1,wsBuf,nBufSize); w wstrRet(wsBuf); delete wsBuf; wsBuf = NULL; wstrRet; } 代码: # # windows.h using std; // Converting a WChar to a Ansi std WChar2Ansi(LPCWSTR pwszSrc) { nLen = WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, NULL, 0, NULL, NULL); (nLen= 0) std (); char* pszDst = char[nLen]; (NULL pszDst) std (); WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL); pszDst[nLen -1] = 0; std strTemp(pszDst); delete pszDst; strTemp; } ws2s(w inputws) { WChar2Ansi(inputws.c_str); } // Converting a Ansi to WChar std w Ansi2WChar(LPCSTR pszSrc, nLen) { nSize = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pszSrc, nLen, 0, 0); (nSize = 0) NULL; WCHAR *pwszDst = WCHAR[nSize+1]; ( NULL pwszDst) NULL; MultiByteToWideChar(CP_ACP, 0,(LPCSTR)pszSrc, nLen, pwszDst, nSize); pwszDst[nSize] = 0; (pwszDst[0] 0xFEFF) // skip Oxfeff { for( i = 0; i nSize; i ) { pwszDst[i] = pwszDst[i+1]; } } w wcharString(pwszDst); delete pwszDst; wcharString; } std w s2ws(const s) { Ansi2WChar(s.c_str

文档评论(0)

1亿VIP精品文档

相关文档