wchar_t* 和char* 互转

Posted g_che

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wchar_t* 和char* 互转相关的知识,希望对你有一定的参考价值。

  1. //将单字节char*转化为宽字节wchar_t*  

wchar_t* AnsiToUnicode(const char* szStr)
{
int nLen = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szStr, -1, NULL, 0);
if (nLen == 0)
{
return NULL;
}
wchar_t* pResult = new wchar_t[nLen];
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szStr, -1, pResult, nLen);
return pResult;
}

//将宽字节wchar_t*转化为单字节char*
inline char* UnicodeToAnsi(const wchar_t* szStr)
{
int nLen = WideCharToMultiByte(CP_ACP, 0, szStr, -1, NULL, 0, NULL, NULL);
if (nLen == 0)
{
return NULL;
}
char* pResult = new char[nLen];
WideCharToMultiByte(CP_ACP, 0, szStr, -1, pResult, nLen, NULL, NULL);
return pResult;
}

以上是关于wchar_t* 和char* 互转的主要内容,如果未能解决你的问题,请参考以下文章

C++数据类型问题,wchar_t和char;size_t

wchar_t到QString的转换方法?

CString 如何转为wchar_t

char* 和 wchar_t* 如何互相转换

char 转wchar_t 及wchar_t转char

如何将char*转换为wchar