多字节与宽字节字符串的相互转换
来源:互联网 发布:淘宝客都是怎么推广的 编辑:程序博客网 时间:2024/05/29 13:16
读取UNICODE文件 保存在宽字节字符串中, 而DLL中的参数为char* , 所以必须进行宽字节到多字节的转换
CFile nFile_Read; //读取数据if(!nFile_Read.Open(L"e:\\1.xml",CFile::modeRead|CFile::typeBinary)){MessageBox(L"未能打开");}UINT nLen=(UINT)nFile_Read.GetLength();// 宽字符类型 modifiey by yujian 3-7--------------------------------wchar_t* pWCHAR= new wchar_t[nLen/2+1]; // 分配空间memset(pWCHAR,0,sizeof(wchar_t)*(nLen/2+1)); // 清空nFile_Read.Read(pWCHAR, (UINT)nLen); // 读取数据nFile_Read.Close();
1 宽字节转换为多字节
首先计算宽字节字符串相当于多少个字节的字符串
然后进行转换
//计算需要多少个字节才能表示对应的多字节字符串DWORD num=WideCharToMultiByte(CP_ACP,0,pWCHAR,-1,NULL,0,NULL,0);//开辟空间char *pChar=NULL;pChar=(char*)malloc(num*sizeof(char));if (pChar==NULL){free(pChar);}memset(pChar,0,num*sizeof(char));//将宽字节字符串转换为多字节字符串WideCharToMultiByte(CP_ACP,0,pWCHAR,-1,pChar,num,NULL,0);
2 多字节转换为宽字节
传递给DLL后,DLL中使用的是宽字节 因此在DLL中还要将单字节转换为宽字节
首先,计算多字节字符串相当于多少个宽字节
然后,将多字节字符串转换为宽字节字符串
wchar_t* pWCHAR=NULL;//计算pChar所指向的多字节字符串相当于多少个宽字节DWORD num=MultiByteToWideChar(CP_ACP,0,pChar,-1,NULL,0);pWCHAR=(wchar_t*)malloc(num*sizeof(wchar_t));if (pWCHAR==NULL){free(pWCHAR);}memset(pWCHAR,0,num*sizeof(wchar_t));//多字节转换为宽字节MultiByteToWideChar(CP_ACP,0,pChar,-1,pWCHAR,num);
参考资料:
http://blog.csdn.net/shuilan0066/article/details/4734359
http://blog.csdn.net/shuilan0066/article/details/5705673
- 多字节与宽字节字符串的相互转换
- 多字节与宽字节字符串 的相互转换
- 多字节字符串与宽字节字符串的相互转化
- 多字节与宽字节相互转换的方法
- 多字节与宽字节相互转换的方法
- 字符串:多字节与宽字节转换
- mfc宽字节widechar与多字节multiChar相互转换
- mfc宽字节widechar与多字节multiChar相互转换
- C++多字节字符与宽字节字符相互转换
- VC 宽字节和多字节的相互转换
- VC 宽字节和多字节的相互转换
- VC下多字节与宽字节之间的相互转换
- 宽字节字符串多字节字符串转换
- c++多字节与宽字节字符串转换(windows平台)
- c++多字节与宽字节字符串转换(windows平台)
- c++多字节与宽字节字符串转换(windows平台)
- 多字节与宽字符相互转换
- Visual Studio中宽字节和多字节相互转换
- Spring.NET学习笔记8——集合类型的注入(基础篇) Level 200
- POJ 2353 Ministry(双向DP)
- Android动画之Interpolator和AnimationSet(三)
- wxpython 封装listctrl 支持添加控件
- 如何自动生成setup.py文件
- 多字节与宽字节字符串的相互转换
- ActiveMQ 学习(VM Transport)
- JavaScript isNaN()函数
- 长连接与短连接
- 初学Android,数据存储之File存储(四十二)
- 每次职业转身,正因王牌在握,李开复才能真正追随我心
- linux下不能向255.255.255.255发送udp广播
- 设计模式六:桥梁模式
- Python——待解决 求解救!!!!