关于VC宽字节操作
来源:互联网 发布:怎样在淘宝上买二手货 编辑:程序博客网 时间:2024/06/06 13:13
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);
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++)
{
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;
}
}
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);
{
printf("Send error");
}
printf("send %d/n",Ret);
以上代码解决了宽字节发送的问题,因为英文字符占一个字符的。
WinCE下是用unicode方式处理的。
- 关于VC宽字节操作
- 关于VC的字节对齐
- VC++中关于字节对齐的问题
- VC++中关于字节对齐的问题
- VC++中关于字节对齐的问题
- 关于宽字节输出
- VC关于 Dialogbar的操作
- 关于VC数据类型及操作
- 宽字节转单字节,宽字节字符操作
- VC++中窄字节、宽字节的由来
- VC++中窄字节、宽字节、多字节
- VC中关于文件的操作
- vc中关于文件的操作
- 关于用vc来操作usb设备
- 字节操作()
- 字节操作
- 关于字节
- Java中关于最简单的输入输出字节流操作
- OpenI 系统架构(部分)
- 从文件 I/O 看 Linux 的虚拟文件系统
- java I/O使用总结
- 堆栈的一点区别
- hibernate findByProperty NoSuchMethod异常解决
- 关于VC宽字节操作
- 整数的分划
- VFP9 SP2 Bug list
- PostMessage和SendMessage,SendMessageTimeout区别
- 类只能使用public修饰或什么都不加
- Cannot use this in a static context
- 堆栈的一点区别
- Microsoft Visual Studio 2010 遇到了异常,可能是由某个扩展导致的......
- 《编程珠玑》--读书笔记12章:取样问题