- // 定义一个结构体记录
- struct group
- {
- CString text; // 定义一个 CString
- std::vector<tag_t> boudaries;
- std::vector<tag_t> charmfers;
- std::vector<tag_t> slots;
- };
- struct AllFeats
- {
- std::vector<tag_t> maxBoudaries;
- struct group CurveGroup;
- };
使用方法:
- // 实现从 char*(多字节) 转换 CString
例子:
项目属性改为多字节
- allFeats.CurveGroup.text =notes[0].GetLocaleText();//= 后边这句为 CString 转换为 char*,NXOPEN 里的方法. GetLocaleText()
- // 实现从 char * 转换 Unicode
- // 多字节转换成 Unicode
例子:
项目属性改为 Unicode
- CString c;
- c.Format(L"%hs", notes[0].GetLocaleText());
- allFeats.CurveGroup.text = c;
- // 实现从 Unicode 转换为多字节的
例子:
项目属性改为 Unicode
- //wchar_t 为宽字节, Unicode 是宽字节的
- wchar_t str[30]; // 宽字节 char 类型的
- CStringA cs;
- cs.Format("%ws", str);
定义方法:
使用多字节
定义 CStringA 就是多字节格式的
使用 Unicode
定义 CStringW 就是 Unicode 格式的
如果 CString 后面什么都不加, 它则使用当前项目属性的本身字符集
在使用 CString 与 char * 进行转换的时候, 可以直接定义 CStringA, 可以直接转换, 如果定义 CString, 要在项目属性里设置成多字节, 要不然等于的类型不一样.
我发现有一个博主写了一篇 VC 包装好的 API 现成转换函数
UNICODE 串转换成 char 类型串的四种方法
链接 https://www.cnblogs.com/liangxiaofeng/p/5765196.html
来源: http://www.bubuko.com/infodetail-3078556.html