CString char2CString(char* ch)
{
int charLen = (int)strlen(ch);
//计算多字节字符的大小,按字符计算
int len = MultiByteToWideChar(CP_ACP, 0, ch, charLen, NULL, 0);
//为宽字节字符数组申请空间,数组大小为按字节计算的多字节字符大小
TCHAR* buf = new TCHAR[len + 1];
//多字节编码转换成宽字节编码
MultiByteToWideChar(CP_ACP, 0, ch, charLen, buf, len);
buf[len] = '\0'; //添加字符串结尾,注意不是len+1
//将TCHAR数组转换为CString
CString strTemp;
strTemp.Append(buf);
//删除缓冲区
delete []buf;
return strTemp;
}
//宽字节转多字节
void CStringToChar(CString strSrc, char* pDest, int size)
{
memset(pDest, 0, size);
int nLength = strSrc.GetLength();
int nBytes = WideCharToMultiByte(CP_ACP, 0, strSrc, nLength, NULL, 0, NULL, NULL);
WideCharToMultiByte(CP_OEMCP, 0, strSrc, nLength, pDest, nBytes, NULL, NULL);
pDest[nBytes] = 0;
}
char toCString 和 CString to char
于 2023-02-26 12:43:40 首次发布
该代码实现了一个从char*到CString的转换函数,以及反向的从CString到char*的转换。主要涉及WindowsAPI中的MultiByteToWideChar和WideCharToMultiByte函数,用于在ASCII编码(CP_ACP)和宽字符编码之间进行转换。
摘要由CSDN通过智能技术生成