c++字符前面的L和_T

2023-11-03

c++字符前面的L和_T
字符串前面加L表示该字符串是Unicode字符串。
_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual C++里边定义字符串的时候,用_T来保证兼容性。VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。
以下是别人的总结:
一、在字符串前加一个L作用:
如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。
strlen(“asd”) = 3;
strlen(L"asd") = 6;
二、 _T宏可以把一个引号引起来的字符串,根据你的环境设置,使得编译器会根据编译目标环境选择合适的(Unicode还是ANSI)字符处理方式
如果你定义了UNICODE,那么_T宏会把字符串前面加一个L。这时 _T(“ABCD”) 相当于 L"ABCD" ,这是宽字符串。
如果没有定义,那么_T宏不会在字符串前面加那个L,_T(“ABCD”) 就等价于 “ABCD”
三、TEXT,_TEXT 和_T 一样的
如下面三语句:
TCHAR szStr1[] = TEXT(“str1”);
char szStr2[] = “str2”;
WCHAR szStr3[] = L(“str3”);
那么第一句话在定义了UNICODE时会解释为第三句话,没有定义时就等于第二句话。
但二句话无论是否定义了UNICODE都是生成一个ANSI字符串,而第三句话总是生成UNICODE字符串。
为了程序的可移植性,建议都用第一种表示方法。但在某些情况下,某个字符必须为ANSI或UNICODE,那就用后两种方法。
别人的总结2:
你要确定你需要的字符串是宽字符还是窄字符。_T(“”)是说如果你定义了UNICODE 那么就是L"“,没有定义就是”";以下情况用_T()比较好,其他情况最好别用:
1,用THCAR,LPTSTR,LPCTSTR等tchar数据类型的时候
2,用_tprintf之类的_t版本运行时函数时候
3,像下面这样有w和a版本的api,调用CreateFile的时候
#ifdef UNICODE
#define CreateFile CreateFileW
#else
#define CreateFile CreateFileA
#endif // !UNICODE

参考链接:https://www.cnblogs.com/wliangde/p/4073659.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++字符前面的L和_T 的相关文章

  • 如何获取正在访问 ASP.NET 应用程序的当前用户?

    为了获取系统中当前登录的用户 我使用以下代码 string opl System Security Principal WindowsIdentity GetCurrent Name ToString 我正在开发一个 ASP NET 应用程
  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定

随机推荐

  • Docker 配置国内源加速(2023/05/14)

    Docker 配置国内源加速 2023 05 14 文章目录 Docker 配置国内源加速 2023 05 14 1 修改配置文件 2 重启 Docker 服务 3 查看是否成功 Docker 在拉取镜像时使用默认源速度会比较慢 因此需要配
  • 12款高质量的免费 HTML 网站模板下载

    这篇文章收集了12款高质量的免费HTML网页模板分享给大家 您可以免费下载使用 相信这些漂亮的HTML网页模板既能够帮助您节省大量的时间和精力 又能有很满意的效果 希望这些精美的免费HTML网页模板能帮助到您 Magicbox 演示 下载
  • 华为手机连电脑当摄像头用_怎么用华为手机当电脑摄像头?

    展开全部 1 首先 需要从网站上下载相应的软件 大家可以从百度里面搜索 魅色软件 然后将电脑PC版本和安卓手机版本的软件全部下载 并在电脑上和安卓手机上都安装上这个软件 2 然后打开并运行电脑上的魅色软件 然后与此同时运行安卓手机上的魅色软
  • 多方安全计算简介

    1 多方安全计算背景 多方安全计算的研究主要是针对无可信第三方的情况下 如何安全地计算一个约定函数的问题 多方安全计算是电子选举 门限签名以及电子拍卖等诸多应用得以实施的密码学基础 一个多方安全计算协议 如果对于拥有无限计算能力攻击者而言是
  • redis(error) NOAUTH Authentication required.

    报错原因 没有用密码登陆认证 解决 输入密码即可解决 auth 密码
  • 点云最小外包矩形计算

    1 原理介绍 一簇点云的最小外包矩形 Minimum Bounding Rectangle MBR 是指用一个矩形将该簇点云框起来 所有点云数据在矩形框内 如下图所示为一个矩形框刚好将点云数据全部包围 下面给出一种基于最大重叠度的最小外包矩
  • 录音转文字软件哪个好?这几款分享给你

    嗨朋友们 你是否曾经为了整理会议记录或是处理采访录音而烦恼不已 那些长篇大论的文字内容得一个个敲键盘实在是太耗时了 今天我要给你介绍一些超方便的录音转文字软件 它不仅简化了记录和整理的过程 还提供了更高效的工作方式 能够让你跟繁琐的打字工作
  • Qt 6.2 中 QML 工具有哪些新功能?

    QML 工具是发展最快的领域之一 自 Qt 5 15 以来添加了大量新功能 在这里 我们将展示静态分析和格式化 QML 领域的进展和未来计划 Qt开发主流库 Qtitan组件集 QtitanRibbon 下载试用 遵循Microsoft R
  • IOC源码刨析

    前言 Spring框架两大核心 IOC和AOP IOC 控制反转 把对象的创建 属性设置 初始化 销毁等工作交给Spirng的IOC容器去管理 解放程序员的劳动力 对象被注册到Spring的IOC容器中 使用的时候从容器中获取即可 非常方便
  • Hadoop生态圈集群部署(完整版)

    软件 版本 Mysql 5 7 Java 1 8 0 241 Hadoop 3 3 0 Zookeeper 3 4 6 Hive 3 1 2 Flink 1 14 5 Hudi 0 11 1 Doris 1 1 0 Dinky 0 6 6
  • 七天玩转Redis

    1 string类型 设定指定的key值 语法格式 set key value key为键 value为值 127 0 0 1 6379 6 gt set k1 v1 OK 获取指定key的值 get key 127 0 0 1 6379
  • k8s容器 pod OOM, exit code:137

    某天查看线上服务 发现有个服务平均每天重启一次 通过k8s descripe pod podName 命令发现exit code 137 reason OOM Killed 提示比较明显OOM 当时查了失败的容器内服务日志 发现没有异常信息
  • R语言中常用的生物多样性指数的计算(Alpha,Beta,Gamma,功能多样性,系统发育多样性)

    文章目录 Alpha 多样性指数 Beta多样性指数 Hill的Beta多样性指数和Gamma多样性指数 基于距离和方差分解的Beta多样性指数 功能多样性 系统发育多样性 Alpha 多样性指数 常见的Alpha多样性指数的含义见http
  • ChromeDriver与Chrome版本的对应关系

    ChromeDriver v2 15 2015 03 26 Supports Chrome v40 43 ChromeDriver v2 14 2015 01 28 Supports Chrome v39 42 Resolved issue
  • 哪些方法可以判断出一个有向图是否有环

    使用深度优先遍历 若从有向图上的某个顶点u出发 在 DFS u 结束之前出现一条从顶点v到u的边 由于v在生成树上是u的子孙 则图中必定存在包含u和v的环 因此深度优先遍历可以检测一个有向图是否有环 拓扑排序时 当某顶点不为任何边的头时才能
  • 无刷电机Foc控制

    foc控制简介 一 知识点简介 什么是foc FOC Field Oriented Control 直译是磁场定向控制 也被称作矢量控制 VC Vector Control 是目前无刷直流电机 BLDC 和永磁同步电机 PMSM 高效控制的
  • osmdroid地图

    1 简介 osmdroid是一个开源的地图填充器 全称是 open street map 至于droid我个人认为应该是安卓版的后缀吧 在网络上找了很多资料 大多是加载在线地图的 加载离线地图的很少 所以把代码记录一下 2 初始化 1 在布
  • Nodejs学习路线图

    转自 http www open open com lib view open1403574545233 html 前言 用Nodejs已经1年有余 陆陆续续写了48篇关于Nodejs的博客文章 用过的包有上百个 和所有人一样 我也从Web
  • python代码有1,2,3,4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少

    count 0 for i in 1 2 3 4 for j in 1 2 3 4 for k in 1 2 3 4 if i j and j k and i k count 1 print f i j k end print f 一共有
  • c++字符前面的L和_T

    c 字符前面的L和 T 字符串前面加L表示该字符串是Unicode字符串 T是一个宏 如果项目使用了Unicode字符集 定义了UNICODE宏 则自动在字符串前面加上L 否则字符串不变 因此 Visual C 里边定义字符串的时候 用 T