A2W W2A A2T T2A _T() 含义_weixin_40720438的博客-程序员秘密

技术标签: C++  

char:8位字节类型,表示ASCII码
WCHAR:16位字符类型,表示Unicode字符
typedef wchar_t WCHAR;
typedef unsigned short wchar_t;

(1)A2W的用法:char* ——> WCHAR*

USES_CONVERSION;  
CString cstring;  
char* achar = "qwer";  
const WCHAR* wchar = A2W(achar);  
cstring = wchar; 

(2)W2A的用法:WCHAR*——> char*

USES_CONVERSION; CString cstring;
WCHAR* wchar = _T("qwer");
const char* achar = W2A(wchar);
cstring = wchar;

(3)A2T的用法:char* ——> CString

USES_CONVERSION;  
char* achar = "qwer";  
CString cstring = A2T(achar);

(4)W2A的用法:CString ——> char*

USES_CONVERSION;  
CString cstring = _T("qwer");  
char* achar = T2A(cstring); 

(5)_T("")是一个宏,定义于tchar.h下

#define _T(x)  __T(x)  
#ifdef  _UNICODE
#define __T(x) L ## x
#else  
#define __T(x)     x

解释:如果你编译一个程序为ANSI方式,_T实际不起任何作用,编译器会把_T("Hello")以ANSI方式保存;而如果编译一个程序为UNICODE方式,则编译器会把_T("Hello")字符串以UNICODE方式保存。
在字符串前加一个L作用:如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。
strlen("asd") = 3; strlen(L"asd") = 6;

(6)CString数据类型
在MFC的工程中我们可以设置工程的编码属性:
①对于UNICODE的编码属性:CString被定义为CStringW,其内部是WCHAR宽字符
②对于多字节的编码属性:CString被定义为CStringA,其内部是char单字节字符


CString是一个宏定义.  根据你的IDE编译字符集不同而定义成不同形式.
当你的字符集设置成 多字符集时, CString 实际 就是CStringA
当你的字符集设置成 UNICODE时, CString 实际上是CStringW.

所以如果你需要UNICODE的串, 请直接这么用:
CStringW  cstringw = L"你好,HELLO!";    //注意那个L
需要ASCII串就是:
CStringA cstringa = "你好,HELLO!";


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40720438/article/details/79443781

智能推荐

VINS-MONO源码学习(三):初始化initialStructure(SFM部分)_vins三角化_矢三郎的狸猫的博客-程序员秘密

VINS-MONO的初始化主要分为两个部分:纯视觉的SFM和视觉惯导联合。这篇主要写SFM,下一篇写视觉惯导联合。首先用视觉的SFM求解滑窗内所有帧的位姿,和所有路标点的3D位置,然后跟IMU预积分的值对齐,求解重力方向、尺度因子、陀螺仪的bias和每一帧对应的速度。在初始化之前,我们已经得到了名为all_image_frame的map,里面存有滑窗中的所有图像帧,包括这一帧对应的特征点3D坐标(未知)、预积分(已知)、是否为特征点(已知)、旋转和平移(未知)。1、通过重力的标准差确保IMU有足够的激

Zookeeper系列——Client端_weixin_33737134的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准>>> ...

Linux 交叉编译环境详细配置_申庆胜的博客-程序员秘密

我用过很久的Ubuntu,不过也是Linux下开发的新手,我在使用Linux做交叉编译环境时候遇到不少麻烦,一顿“google、百度”发现有用的文章没几个,都是互相抄,还抄的显得很专业,嗬嗬,所以想这里写些经验体会,加以分享!:-)不多说,直奔正题! 关于嵌入式LINUX开发环境主要有以下几个方案:1、直接安装 LINUX 操作系统;2、在 WINDOWS

PHPExcel读取单元格格式化数据的方法_php读取 excel带格式化的输值_淘宝新蔷程序员特训营,快速学会开发项目的博客-程序员秘密

参考:http://www.jquerycn.cn/a_21872如下图:1、读取“章节名称”用方法:getValue(),示例代码如下://章节名称$section_name = $objWorksheet->getCellByColumnAndRow(9, $row)->getValue();2、读取格式化的数据,用方法getFormattedValue(),如读取“章节时长”,示例代码如下://学习时长$playtime = $objWorksheet-&g

经典问题一.(插入乘号的整数划分)整数划分(四) nyoj 746_CN_swords的博客-程序员秘密

NYOJ 746 整数划分(四) (区间DP)解决问题: 给出一个长度为n的数,要在其中加上m-1个乘号,分成m段,使m段的乘积之和最大。解决办法: 首先预处理出: 不划分,其各个区间的值 dp[i][j] 代表: 前i位数,在划分成j段后的最大乘积和。 初始化: dp[i][1]: 不划分(即划分成1段)的时候,其值等于qujian[1][i]。 递推式: dp[i][j] = d

mysql 运行sql 1146_ERROR 1146 (42S02): Table 'mysql.slow_log' doesn't exist_weixin_39941620的博客-程序员秘密

去查看最新的slow log,发现没有最新的记录,上去检查slow log是否开启了。mysql> show variables like '%slow%';+---------------------+------------------------------------------+| Variable_name | Value ...

随便推点

P1494-[国家集训队]小Z的袜子【分块优化莫队】_QuantAsk的博客-程序员秘密

正题评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1494题目大意区间任意取两个数,求取到相同的数的概率。解题思路假设一个区间有x个y,那么两个都取到y的方案数是x∗(x−1)x*(x-1)x∗(x−1),那么取到相同总共方案数∑i=1nxi∗(xi−1)\sum_{i=1}^nx_i*(x_i-1)∑i=...

java 调用bat脚本 等待返回_java执行DOS命令或bat脚本需要等命令执行完有返回值(process.waitFor();)阻塞情况解决方法..._星星星云的博客-程序员秘密

想必遇到这个问题的朋友,查过很多了,网上主要的办法貌似有3.第一:就是新建两个线程处理输入输出流。这个办法比较好理解,也比较通用,比较通用。第二:还有关闭对输入输出流的输入。这个不太通用,在处理文件的的时候貌似好使。第三:通过获取process的输出流,根据一个while循环判断console中的内容来做处理。我这里主要介绍第一种,我也是网上找了一个可用的实例。下面是一个工具类:package c...

添加<tx:annotation-driven transaction-manager=“”/>后出错:jdbcTemlate无法resolve dataSource_仅此,的博客-程序员秘密

添加<tx:annotation-driven transaction-manager=“transactionManager”/>就报错说jdbcTemlate无法resolve dataSource?注意:spring抛出此异常后,在下面还有一句异常:boolean org.springframework.core.annotation。这个才是重点。原因是 spring框架的jar版本不一致。如果你是maven项目,那就很简单,解决方案就是把pom.xml中groupId是org.s

单行文本垂直居中稍微偏下的问题_css 字体设置居中但是偏下_努力向前,成长可见的博客-程序员秘密

在设置单行文本垂直居中时,我们通常的做法是通过设置行高来实现,即设置子元素的行高等于父元素的高度,代码如下:.Push{ height: 1.8rem; background-color: #fff; border-radius: .3rem;}.Push span{ background-color: rgba(255,255,255,0); line-height: 1.8rem;}效果如下所示:如果你仔细观察,你会发现文字比中心位置稍微偏下了一些,出现这样问题的原因

北京信息科技大学第十一届程序设计竞赛(重现赛)A kotori和糖果_zhourenhao的博客-程序员秘密

链接:https://ac.nowcoder.com/acm/contest/940/A来源:牛客网题目描述kotori共有n块糖果,每块糖果的初始状态是分散的,她想把这些糖果聚在一堆。但她每次只能把两堆糖果合并成一堆。已知把两堆数量为a和b的糖果聚在一堆的代价是|a-b|。kotori想知道,她把这n块糖果聚在一堆的最小代价是多少?输入描述:第一行是一个正整数T,代表数据组数。第...

给oracle添加裸设备数据文件(AIX单机)_cl1210930061的博客-程序员秘密

AIX给oracle添加裸设备数据文件 平台:AIX 5.3 单机 存在一个空闲磁盘hdisk1 总体思路:物理卷PV->卷组VG-&...

推荐文章

热门文章

相关标签