char*, wchar*互转
来源:互联网 发布:层次数据库模型举例 编辑:程序博客网 时间:2024/05/22 14:22
以下代码对转换操作做了简单的封装
#include <WinNls.h>std::string SysWideToMultiByte(const std::wstring& wide, unsigned int code_page) { int wide_length = static_cast<int>(wide.length()); if (wide_length == 0) return std::string(); // Compute the length of the buffer we'll need. int charcount = WideCharToMultiByte(code_page, 0, wide.data(), wide_length, NULL, 0, NULL, NULL); if (charcount == 0) return std::string(); std::string mb; mb.resize(charcount); WideCharToMultiByte(code_page, 0, wide.data(), wide_length, &mb[0], charcount, NULL, NULL); return mb;}std::wstring SysMultiByteToWide(const std::string& mb, uint32 code_page) { if (mb.empty()) return std::wstring(); int mb_length = static_cast<int>(mb.length()); // Compute the length of the buffer. int charcount = MultiByteToWideChar(code_page, 0, mb.data(), mb_length, NULL, 0); if (charcount == 0) return std::wstring(); std::wstring wide; wide.resize(charcount); MultiByteToWideChar(code_page, 0, mb.data(), mb_length, &wide[0], charcount); return wide;}int _tmain(int argc, _TCHAR* argv[]){ char strName[] = "12345"; WCHAR wstrName[] = {WCHAR('1'), WCHAR('2'), WCHAR('3'), WCHAR('4'), WCHAR('5'), WCHAR(0)}; WCHAR* pwstrName = &(wstrName[0]); char strTemp[256]; wchar_t tstrTemp[256]; wchar_t* tstrPoint = &(tstrTemp[0]); memset(tstrPoint, 0, sizeof(tstrTemp)); long len = lstrlenA(strName)+1; MultiByteToWideChar( CP_ACP, 0, strName, strlen(strName)+1, tstrPoint, sizeof(strName)/sizeof(strName[0]) ); WideCharToMultiByte( CP_ACP, 0, pwstrName, lstrlenW(pwstrName)+2, (LPSTR)strTemp, 256, NULL, NULL );return 0;}
阅读全文
0 0
- wchar char 互转
- char*, wchar*互转
- char、wchar、string、wstring互转
- WCHAR CHAR
- Char&wchar
- char wchar
- wchar <---> char
- char* wchar* char wchar转换 (转)
- char转wchar 、 wchar 转 char
- wchar[] 与 char[] 转换
- char,TCHAR,WCHAR区别
- wchar* 转换为char *
- char,TCHAR,WCHAR区别
- wchar 和 char
- wchar to char转换
- char * ,wchar_t * ,WCHAR * , TCHAR *
- char,TCHAR,WCHAR区别
- char to WCHAR
- 2017年11月第二周知识点积累
- Python爬取Alexa.cn上Top500的网址
- 宿主环境
- Java将list数据取出并加入分隔符拼接,转换成String
- 【Android源码系列】Activity启动源码解析
- char*, wchar*互转
- Mayor's posters POJ
- [批处理命令一日一教学 续](18)转换磁盘系统格式:convert
- C语言之旅(2)数组
- java里的数据类型
- gradle错误
- GD32芯片移植完全攻略-大石头
- 一个工具类搞定drawable下扎堆的selector(原链接:http://www.jianshu.com/p/7fb9567a5869)
- 前后端分离1:使用React+dva+antd快速实现用户列表的展示