关于VC宽字节操作

VC2008在创建MFC应用程序的时候,默认字符集是unicode方式,即:

_T(),L表示unicode字符串
unicode字符串,一个字符占两个字节
例如如下代码:
CString str=_T("我们123abc是");
int len=str.GetLength();  //len=9,而不是12
 
char *psendbuf = NULL; //定义发送缓冲区
int len = m_send.GetLength()*2;  //取得输入字符串长度m_send.GetLength()* sizeof(TCHAR)  le0 = CStringA(str).GetLength();
psendbuf = new char[1024];
ZeroMemory(psendbuf, len);
//宽字节转byte数组
 WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, (LPCWSTR)m_send, len, (LPSTR)psendbuf, len*2, NULL, NULL);
 int ilen=0;
 for(int i=0;i<len;i++)
 {
  ///0表示数组结束位,这样可以统计实际字节数,即一个汉字两个字节,一个英文字符一个字节的问题
    if(psendbuf[i]==0x00)
   {
      ilen=i;
      break;
   }
 }
 int Ret = send(s, psendbuf, ilen, 0);
    if(Ret<=0)
    {
    printf("Send error");
 
    }
    printf("send %d/n",Ret);
以上代码解决了宽字节发送的问题,因为英文字符占一个字符的。
WinCE下是用unicode方式处理的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值