VC编程unicode字符集下char数组转化为CString
2015-01-19 22:31
411 查看
struct sockaddr_in addr;
int addr_len = sizeof(struct sockaddr_in);
CString strState;
//记得要用char接收数据,因为网络中传输的数据只是和编码方式无关的字节流
//所以接收到字节流后再转化为宽字符unicode编码方式用于显示和写文件
char tempSocketReceive[MAXDATALENGTH] = "";
memset(tempSocketReceive, 0, MAXDATALENGTH);//char清空;
tempSocketReceive[MAXDATALENGTH - 1] = '\0';//防止数据末尾出现烫烫烫烫,加上之后仍然出现
int length = recvfrom(listen_socket, tempSocketReceive, MAXDATALENGTH, 0, (struct sockaddr *)&addr, &addr_len);
//判断为将多字节编码转化为宽字节编码所需要的内存空间
DWORD dwNum = MultiByteToWideChar(CP_ACP, 0, tempSocketReceive, -1, NULL, 0);
//在堆上分配内存,申请的内存必要要释放,不然早晚会内存泄露
导致程序崩溃
wchar_t *pwText;
pwText = new wchar_t[dwNum];
//将对字节转换位宽字皆unicode,转换结果保存在堆内存上,记得
delete
MultiByteToWideChar(CP_ACP, 0, tempSocketReceive, -1, pwText, dwNum);
//将收到的数据用CString表示,便于在MFC上显示和用CFile写入文件
CString rawData(pwText);//未经解析的原始串口数据数据
CString temp = comDecode(rawData);//经过解析的串口数据
//堆内存已经由CString的构造函数转化栈内存,所以堆内存尽早释放
delete[]pwText;
int addr_len = sizeof(struct sockaddr_in);
CString strState;
//记得要用char接收数据,因为网络中传输的数据只是和编码方式无关的字节流
//所以接收到字节流后再转化为宽字符unicode编码方式用于显示和写文件
char tempSocketReceive[MAXDATALENGTH] = "";
memset(tempSocketReceive, 0, MAXDATALENGTH);//char清空;
tempSocketReceive[MAXDATALENGTH - 1] = '\0';//防止数据末尾出现烫烫烫烫,加上之后仍然出现
int length = recvfrom(listen_socket, tempSocketReceive, MAXDATALENGTH, 0, (struct sockaddr *)&addr, &addr_len);
//判断为将多字节编码转化为宽字节编码所需要的内存空间
DWORD dwNum = MultiByteToWideChar(CP_ACP, 0, tempSocketReceive, -1, NULL, 0);
//在堆上分配内存,申请的内存必要要释放,不然早晚会内存泄露
导致程序崩溃
wchar_t *pwText;
pwText = new wchar_t[dwNum];
//将对字节转换位宽字皆unicode,转换结果保存在堆内存上,记得
delete
MultiByteToWideChar(CP_ACP, 0, tempSocketReceive, -1, pwText, dwNum);
//将收到的数据用CString表示,便于在MFC上显示和用CFile写入文件
CString rawData(pwText);//未经解析的原始串口数据数据
CString temp = comDecode(rawData);//经过解析的串口数据
//堆内存已经由CString的构造函数转化栈内存,所以堆内存尽早释放
delete[]pwText;
相关文章推荐
- MFC:Unicode和多字节字符集下 CString和char的转化(MFC中)
- VC++的多字符集和unicode字符集转换大全(CString转char*等)
- 关于Unicode字符集,将char数组转化成LPCTSTR
- VC中unicode字符集下sendto发送char数组
- MFC中,Unicode和多字节字符集下 CString和char的转化
- MFC中,Unicode与多字符集下CString与char或char*等的转化
- MFC中,Unicode和多字节字符集下 CString和char的转化
- MFC中,Unicode和多字节字符集下 CString和char的转化
- ring3 char 字符数组 传入ring0后 转化为UNICODE_STRING处理
- VC里面的cstring跟int char*转化
- [VC++]CString转化成char
- VC中unicode环境下CString转char*的方法
- Byte,CString,Char数组之间的转化
- vc++ Unicode Cstring to char*
- Unicode字符集下CString与char *转换(转载)
- Unicode字符集下CString与char *转换——转载
- Unicode编码下面char *或者char数组转CString
- 纪念一下VC2005的CString转化到char*事件
- CString 转换为 char* (VC6.0与Visual Studio 2008兼容问题)UNICODE字符集
- Unicode 字符集下,CString 型转化成int 型