VC 中与字符串相关的宏 _T、TEXT,_TEXT、L 的作用(简单明了)

一、 在字符串前加一个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,那就用后两种

http://blog.csdn.net/adcxf/article/details/2540992

时间: 2024-10-06 01:15:11

VC 中与字符串相关的宏 _T、TEXT,_TEXT、L 的作用(简单明了)的相关文章

VC++中tchar的相关问题

前言 什么是tchar? 百度百科对其的定义如下": 因为C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹),这样对应的就有了两套字符串处理函数,比如:strlen和wcslen,分别用于处理两种字符串 微软将这两套字符集及其操作进行了统一,通过条件编译(通过_UNICODE和UNICODE宏)控制实际使用的字符集,这样就有了_T("")这样的字符串,对应的就有了_tcslen这样的函数 为

VC中的字符串转换宏

ATL7.0引入了几个新的转换类和宏,现有的宏提供了显着的改善.新的字符串转换类和宏的名称,采取的形式如下: C SourceType 2[C]DestinationType[EX] 其中,[C]表示目的类型是const类型的,[EX]表示指定了保存字符串数据的固定静态缓存区的大小,如果字符串转换的结果超过了模板参数的大小,使用malloc分配空间,并在对象超出范围时释放内存.所以说这个转换宏(实质是个类)在循环中使用也是安全,它不会堆栈溢出.另外,如果试图分配堆内存和失败,它会调用AtlThr

[转]java中的字符串相关知识整理

字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果写过C/C++的应该就了解,在字符串的操作上会有许多操作的函数与类,用于简化代码的开发.一方面是因为字符串在代码中会频繁用到,另一方面是因为字符串的操作非常麻烦. 最初我知道String的特殊待遇就是在delphi中,因为String在delphi里是一个关键字存在,与其他的基本类型是不一样的.那时

js中数组字符串相关

1.字符串转数组 var s = "abc,abcd,aaa";ss = s.split(",");// 在每个逗号(,)处进行分解. 2.数组转字符串 var a, b;a = new Array(0,1,2,3,4);b = a.join(","); 3.查询数组中是否包含某元素 var num=jQuery.inArray(value, array); 解释:返回value在数组中的位置,从0开始计数(如果没有找到则返回 -1 ). 4.j

DB2 VC++ 中连接字符串

根据你安装的驱动,有如下两种连接字符串形式.Provider=DB2OLEDB;Network Transport Library=TCPIP;Network Address=xxx.xxx.xxx.xxx;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;UserID=myUsername;Password=myPassword; Provider=IBMDADB2;Database=myDataB

VC 中TEXT、_T、L的区别

http://i.cnblogs.com/EditPosts.aspx?opt=1 对于从VC++6.0转到VS2005编译环境中的程序员.往往会碰到字符集之间的转换. VC6.0采用的是ANSI字符集,而VS2005或者VS2008是采用的Unicode字符集. L: 比如创建一个窗口类: HWND hWnd=CreateWindow(L"ClassName",L"最简单的Direct3D程序", WS_OVERLAPPEDWINDOW,200,100,600,5

VC中_T()的作用

Windows使用两种字符集ANSI和UNICODE, 前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况. 而后者是双字节方式,方便处理双字节字符. Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式._T一般同字常数相关,如_T("Hello").如果你编译一个程序为ANSI方式,_T实际不起任何作用. 而如果编译一个程序为UNICODE方式,则编译器会把"Hello&qu

VC中常用的宏[转]

我们在VS环境中开发的时候,会遇到很多宏定义,这些宏可以应用到代码中,或用于编译.工程选项等设置,总之是我们开发中必不可少的工具,有必要做一个总结.有些宏是C/C++定义的,有些宏是VC环境预定义的. 1.C/C++中的宏 __cplusplus  如果当前编译器为C++,该值为1. __DATE__  当前源码的编译日期,格式为Mmm dd yyyy. __TIME__  当前源码的编译时间,格式为hh:mm:ss. __TIMESTAMP__  当前源码文件最后被修改的日期和时间,格式为Dd

VC++ 在两个程序中 传送字符串等常量值的方法:使用了 WM_COPYDATA 消息(转载)

转载:http://www.cnblogs.com/renyuan/p/5037536.html VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的 消息作用:    在进程间共享数据(内部通过创建内存映射文件) 消息介绍:需要用到的数据结构/类型:typedef struct tagCOPYDATASTRUCT {    ULONG_PTR dwData;    DWORD cbData;    PVOID lpData;} COPYDATASTRUCT,