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

智能推荐

Maven项目 混合编译Java和Scala_Yano阳的博客-程序员秘密

建立maven-scala项目后,会生成相应的pom文件。把maven-surefire-plugin的插件注释掉或者直接删掉。然后加入maven-shade-plugin的插件配置。 接下来正常边写程序运行项目时,由于java和scala代码相互调用,所以maven install的时候报错了。 scala:216: error: not found: value java class 然后

回文数判断 — Python实现_Jeaten的博客-程序员秘密

题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121 输出: falseLeetCode链接解题思路使用python解决非常简单首先将数组转为字符串两个指针,一个从左往右遍历字符串,一个从右往左遍历,如果遇到两个不相等的情况,则不为回文数,直到两个指针相等代码实现class Solution: def isPalindrome(self, x: int)

【笔记】根据元素个数给予宽度_weixin_30580943的博客-程序员秘密

方法一:$(document).ready(function(){$(".xn_mc_solu_2_ul").css("width", $(".xn_mc_solu_2_ul").children().length * $(".xn_mc_solu_2_ul li").outerWidth(true) )});方法二:$li.each(function() {w+=p...

(POJ 3067)Japan 树状数组_STILLxjy的博客-程序员秘密

Japan Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 27518 Accepted: 7447 DescriptionJapan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for the

Autoware.AI 1.14.0版本源码安装(亲测有效)_Kadima°的博客-程序员秘密

Autoware.AI 1.14.0版本源码安装(亲测有效)1.前期准备:Ubuntu18.04系统 安装ROS Melodic 安装显卡驱动 安装cuda10.0 安装cuDNN7.5 安装2.安装系统依赖:sudo apt-get updatesudo apt-get install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin gksusudo apt-get install -y python3-pip py

第二届SDN大赛--必答题1_蒋暕青de博客的博客-程序员秘密

第二届SDN大赛--必答题1第1小题:简单网络一、 实验目的搭建如图1.1所示的简单网络,通过流表操作来实现两台不同主机间的 ping 通与否。 图1.1:简单网络拓扑  二、 实验环境搭建(一)设计思路如图1.1所示,简单网络由一台Controller,两台switch以及两台host组成。我们通过Controller添加流表让两台host无法

随便推点

基于什么才是好的智慧医疗小程序APP解决方案医疗视频预约问诊_视频问诊需求方案_薇WLWCXKF的博客-程序员秘密

小程序医疗是趋势现在各行各业都在数字化转型,而且交易行为社交化是趋势,私域流量如火如荼的展开,如果你起步太迟,你的目标客户流量一旦被别人私有化完成,你再获客就难上加难了。医疗、医院、诊所这类行业也不例外,也需要小程序来武装自己。小程序是工具,用小程序无非只需要医疗两个核心问题就可以了:1.在线问诊2.在线挂号和预约只要这两个问题解决了,就能够帮助医院节省很多人力物力,同时呢,也能给医院带来更多的订单和客户。医院拓客和拉新,必须依靠这两个工具,才能完成线上引流,形成交易闭环。在线问诊这其实是很好

各种JavaScript开发工具比较_denialjs的博客-程序员秘密

转http://www.aspxhome.com/javascript/program/200710/211923.htm1 引子 Java,C#等各种高级语句的开发工具琳琅满目,争放异彩。但作为AJAX的主角的JavaScript语言,配套的开发开具方面总保持着不相称的沉寂。缺乏良好开发工具的支持,编写 JavaScript程序,特别是超过500行以上的JavaScr

python大数据:实战热水器用户行为识别(三、建立模型与模型检验)_胖虎卖汤圆的博客-程序员秘密

五、模型构建import pandas as pdfrom sklearn.preprocessing import StandardScalerfrom sklearn.neural_network import MLPClassifierimport joblib1. 读取数据# 读取数据Xtrain = pd.read_excel('../tmp/sj_final.xlsx'...

uva If We Were a Child Again_hexiecs的博客-程序员秘密

题目如下:If We Were a Child AgainInput: standard inputOutput: standard outputTime Limit: 7 seconds“Oooooooooooooooh!If I could do the easy mathematics like my school days!!I can gu

VSCode-Vue文件中Language Model显示Plain Text 不显示Vue_Mirrorystal-镜明的博客-程序员秘密

问题:VsCode中写入template没有提示,下面Language Mode显示Plain Text,不显示Vue解决方案:安装vetur插件

Nodejs开发微信公众号中控服务_weixin_30702413的博客-程序员秘密

本文已同步到专业技术网站www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发、Nodejs、Python、Linux、IT资讯等板块.本项目旨在为多个微信公众号提供中控服务, 包含以下服务内容:校验后台签名配置处理微信公众号消息获取access_token获取jssdk签名自定义菜单本项目采用的技术选型为:...

推荐文章

热门文章

相关标签