VC中unicode字符集下sendto发送char数组

UpdateData(true);//刷新控件的值到对应的变量

int len = m_strSend.GetLength();

if (0 == len)

{

strState.Format(L"请填写需要发送的数据!");

GetDlgItem(IDC_STATIC_SEND_STATE)->SetWindowText(strState); //动态指定static text显示内容

return;

}

int byteLenSend = (len + 1)*sizeof(wchar_t);

USES_CONVERSION;//字符编码转换所需要的宏定义

int sendLen = SndData(W2A(m_strSend), byteLenSend);

if (byteLenSend == sendLen)

{

m_strReceived.SetWindowText(m_strSend);

GetDlgItem(IDC_EDIT_SEND)->SetWindowText(L"");

}

时间: 2024-12-20 01:47:26

VC中unicode字符集下sendto发送char数组的相关文章

Unicode字符集下CString与char *转换 (解决中文乱码等)(转)

UniCode 下 CString 转 char* 的方法的文章有很多,但是大部分都是在互相转载,看了那么多资料,仍然没有解决乱码的问题,后来从一个论坛的一条回复里面找到了正确的方法,特此拿出来与大家分享. 先总结一下网上找到的三种转换的方法: 方法一:使用函数setlocale setlocale(LC_ALL,"chs"); 需要包含头文件#include<locale.h> 此方法的思路是配置地域化信息.通常在需要输入输出中文的时候设置一下,就没问题了,setloca

Unicode字符集下CString与char *相互转换

经常遇到CString转换char*时只返回第一个字符.原因是因为在Unicode字符集下CString会以Unicode的形式来保存数据,强制类型转换只会返回第一个字符.所以直接转换在基于MBCS的工程可以,但在基于Unicode字符集的工程中直接转换是不可行的.下面就具体看一下,在Unicode字符集下如下进行CString与char*的互相转换. 在Visual C++.NET2005中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:M

VC编程unicode字符集下char数组转化为CString

struct sockaddr_in addr; int addr_len = sizeof(struct sockaddr_in); CString strState; //记得要用char接收数据,因为网络中传输的数据只是和编码方式 无关的字节流 //所以接收到字节流后再转化为宽字符unicode编码方式用于显示和 写文件 char tempSocketReceive[MAXDATALENGTH] = ""; memset(tempSocketReceive, 0, MAXDATA

unicode字符集下CStdioFile无法写入中文的解决方案

CStdioFile file; file.Open(_T("c:\\a.txt"),CFile::modeCreate |CFile::modeReadWrite); file.WriteString(_T("hello world ,第一句话")); file.Flush(); file.Close(); 默认状态下,中文无法显示. _tsetlocale( LC_CTYPE, _T("chs"));//设置语言环境为中文.如果主机安装的是中

Delphi中的PChar、String、Char数组

参考:http://blog.csdn.net/procedure1984/article/details/5419616 一.三者的区别 string和char数组都是一块内存,其中存放着连续的字符. string保存具体字符的内存对用户是透明的,有Delphi管理它的分配.复制和释放,用户不能干预(其实也可以,不过是通过非法途径) Char数组类似于C/C++中的字符数组 PChar是一个指针,它的大小只有32位.定义时由Delphi自动填0.要将PChar作为字符串使用的话,必须自己分配内

MFC:在Unicode编码下CString、char *转换

一.CString转char * CString pb=_T("abc"); int len = WideCharToMultiByte(CP_UTF8, 0, pb, pb.GetLength(), NULL, 0, NULL, NULL); char* pa = new char[len + 1]; len = WideCharToMultiByte(CP_UTF8, 0, pb, pb.GetLength(), pa, len + 1, NULL, NULL); pa[len]

UniCode 下 CString 转 char* 的方法

今天进行文件操作时,将CString的GetBuffer()后直接倒到char数组后写入文件发现 每个字符与字符之间都有一个空格存在,而且有内容丢失.原来CString类对象GetBuffer(),后以后还是unicode编码,所以必须将宽字符转换成char类型那就必须用到一个函数 网上查了下解决方法如下: 在Visual C++.NET2005中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte Character Set

通过编写串口助手工具学习MFC过程&mdash;&mdash;(三)Unicode字符集的宽字符和多字节字符转换

通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个串口助手再次熟悉一下MFC,并做了一下记录,以便方便以后查阅.做的过程中多是遇到问题直接百度和谷歌搜索来的,所以很多都是不求甚解,知其然不知其所以然.另外做此工具只是为了熟悉了解,许多功能还没有完善!(开发工具VS2008) (三)Unicode字符集的宽字符和多字节字符转换 在上一节<(二)通过&qu

多字节字符集与Unicode字符集

在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset). 多字节字符集: 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个 字符,总共表示128个字符,其中包括了 英文字母.数字.标点符号等常用字符.之后,又进行扩展,使用8 bits表示一个字符,可以表示256个字符,主要在原来的7 bits字符集的基础上加入了一些特殊符号.后来,由于各国语言的加入,