NX二次开发-char*转换成CString,多字节转换成Unicode使用方法

 1     //定义一个结构体记录
 2     struct group
 3     {
 4         CString text;  //定义一个CString 
 5         std::vector<tag_t> boudaries;
 6         std::vector<tag_t> charmfers;
 7         std::vector<tag_t> slots;
 8     };
 9     
10     struct AllFeats
11     {
12         std::vector<tag_t> maxBoudaries;
13         struct group CurveGroup;
14     };
15 
16     使用方法:
17     
18     //实现从char*(多字节)转换CString
19     例子:
20     项目属性改为多字节
21     
22     allFeats.CurveGroup.text =notes[0].GetLocaleText();//=后边这句为CString转换为char*,NXOPEN里的方法.GetLocaleText()
23 
24 
25 
26     //实现从char*转换Unicode
27     //多字节转换成Unicode
28     例子:
29     项目属性改为Unicode
30     
31     CString c;
32     c.Format(L"%hs", notes[0].GetLocaleText());
33     allFeats.CurveGroup.text = c;
34 
35 
36 
37     //实现从Unicode转换为多字节的
38     例子:
39     项目属性改为Unicode
40     
41     //wchar_t为宽字节,Unicode是宽字节的
42     wchar_t  str[30]; //宽字节char类型的
43     CStringA cs;
44     cs.Format("%ws", str);
45     
46     
47 
48     
49     定义方法:
50     使用多字节
51     定义 CStringA就是多字节格式的
52     
53     使用Unicode
54     定义 CStringW就是Unicode格式的
55     
56     如果CString后面什么都不加,它则使用当前项目属性的本身字符集
57 
58     在使用CString与char*进行转换的时候,可以直接定义CStringA,可以直接转换,如果定义CString,要在项目属性里设置成多字节,要不然等于的类型不一样。
59 
60 
61     我发现有一个博主写了一篇VC包装好的API现成转换函数
62     UNICODE串转换成char类型串的四种方法
63     链接https://www.cnblogs.com/liangxiaofeng/p/5765196.html
原文地址:https://www.cnblogs.com/nxopen2018/p/10957447.html