因为VS里的很多字符编码都是采用unicode来编码的,为了兼容字符集。微软开发了tchar包,tchar 在unicode下是wchar(双字符),而普通是char。 因为C++支持两种字符串,即常规的ANSI编码和Unicode编码,这样对应的就有了两套字符串字符串处理函数,比如:strlen和wcslen,分别用于处理两种字符串 。微软将这两套字符集及其操作进行了统一,通过条件编译(通过_UNICODE和UNICODE宏)控制实际使用的字符集,这样就有了_T("")这样的字符串,对应的就有了_tcslen这样的函数 。  

为了存储这样的通用字符,就有了TCHAR: 当没有定义_UNICODE宏时,TCHAR = char,_tcslen = strlen;当定义了_UNICODE宏时,TCHAR = wchar_t , _tcslen = wcslen 。当我们定义了UNICODE宏,就相当于告诉了编译器:我准备采用UNICODE版本。这个时候,TCHAR就会变成了wchar_t。而未定义UNICODE宏时,TCHAR变成了unsigned char 。这样就可以很好的切换宽窄字符集。tchar可用于双字节字符串,使程序可以用于中日韩等国 语言文字处理、显示。使编程方法简化。

参考资料:http://zhidao.baidu.com/question/318248378.html

#include tchar.h 是什么意思相关推荐

  1. C/C++—— #include“stdafx.h”详解

    转自:http://blog.csdn.net/qingkong8832/article/details/6695123 1,用VS2008新建项目,选择[Win32]-[Win32控制台应用程序]- ...

  2. tchar.h及TCHAR数据类型介绍

    并不是所有的Windows操作系统都支持UNICODE编码的API(例如早期的Windows98), 这就造成了两种结果:某些版本的Windows应该应用wchar_t来保存字符, 某些平台的Wind ...

  3. Visual Studio2017自动生成的#include“stdafx.h”详解及解决方案

    问题描述: 在高版本的Visual Studio的默认设置中,会出现这么一个现象,在新建项目之后,项目会自动生成#include"stdafx.h"的头文件,而且删掉之后,即使是自 ...

  4. ../include/my_global.h:1107: 错误:对 C++ 内建类型‘bool’的重声明

    在mysql安装的过程中,如果make的时候出现如下错误: 1 ../include/my_global.h:1107: 错误:对 C++ 内建类型'bool'的重声明 则需要安装gcc-c++,一般 ...

  5. #include Windows.h 和 Winsock2.h冲突的改进解决方案

    #include <Windows.h> #include <Winsock2.h> 上面的代码会导致重定义错误, 原因就是 Windows.h 中包含了 Winsock.h( ...

  6. c++中#include“stdafx.h”

    参考: https://blog.csdn.net/weixin_41813895/article/details/79698789 问题描述: 在高版本的Visual Studio的默认设置中,会出 ...

  7. 【错误记录】编译 ijkplayer 报错 (fatal error: libyuv.h: No such file or directory #include “libyuv.h“ )

    文章目录 一.报错信息 二.解决方案 参考 https://github.com/bilibili/ijkplayer 项目的编译过程 ; 一.报错信息 在编译完 ffmpeg 之后 , 执行 ./c ...

  8. MFC apps must not include windows.h

    用VS2008建立一个DLL项目,一开始的时候不想用MFC, 所以选择的是使用标准Windows库. 使用了一段时间后又想用MFC了,所以把选项改成使用在共享 DLL 中使用 MFC. 但是编译的时候 ...

  9. 第二次作业#include stdio.h int main() { int a,b,c,d,e; printf(请输入一个不多于五位的整数:\n); scanf(%...

    1 判断成绩等级 给定一百分制成绩,要求输出成绩的等级.90以上为A,80-89为B,70-79为C,60-69为D,60分以下为E,输入大于100或小于0时输出"输入数据错误". ...

最新文章

  1. 24.二叉树中和为某一值的路径
  2. 题解 P4753 【River Jumping】
  3. [BUUCTF-pwn]——ciscn_2019_n_3
  4. python爬新闻并保存csv_用python爬取内容怎么存入 csv 文件中
  5. Extra }, or forgotten lendgroup. \makecover
  6. c++ 多线程 垃圾回收器_并行并发CMS垃圾回收器:-XX:+UseConcMarkSweepGC
  7. 【英语学习】【Daily English】U01 Greetings / L03 Have we met before?
  8. Hive中HSQL中left semi join
  9. python打电话播放语音_让电话录音也能看得见,录音一键转为文字
  10. DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016
  11. HashMap为什么是线程不安全的
  12. 缺少winload.efi”的解决办法
  13. C语言---双人贪吃蛇
  14. 【室内定位】采用TOA借助多个基站与终端之间距离进行目标定位matlab源码
  15. [微信小程序开发者工具] [error] Error: Fail to open IDE 问题解决方法
  16. OpenCV实践之GMS网格运动统计策略的特征匹配算法
  17. 如何正确使用 GC.SuppressFinalize()?
  18. K8S集群应用市场安装部署:第一篇
  19. 大众创业热度不减,好机友项目强势来袭
  20. 省流版-38号车评中心历史车评文字汇总

热门文章

  1. gitlab打tag标签
  2. 盘点科技公司十大裁员风波:诺基亚累计裁员近半(转)
  3. C++错误解决:double free or corruption (out): 0x00000000011abe70 ***
  4. T-BOX 车载网联终端设计
  5. 解密|FBI不光有特工,还有智能存储系统!
  6. 2019年12月PAT甲级 第一题 Good in C(1164)题解
  7. 记网站部署中一个奇葩BUG
  8. QQ在线代码,MSN在线代码,雅虎通在线代码,阿里旺旺在线代码
  9. 国际博物馆日 | 去全球摄影之家——纽约摄影展览馆领略艺术的魅力
  10. 小说里的编程 【连载之十一】元宇宙里月亮弯弯