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,500,

NULL,NULL,wc.hInstance,NULL);

L的作用:是将ANSI字符串转换成Unicode字符串,也就是每个字符占用两个字节。

比如:

strlen("asd")=3;

strlen(L"asd")=6;

_T:

_T宏可以把一个引号引起来的字符串,根据你的环境设置,使得编译器会根据编译目标环境选择合适的(Unicode还是ANSI)字符处理方式

如果你定义了UNICODE,那么_T宏会把字符串前面加一个L。这时 _T("ABCD") 相当于L"ABCD",这是宽字符串。

如果没有定义,那么_T宏不会在字符串前面加那个L,_T("ABCD") 就等价于"ABCD"

因此_T相当于自动转换字符集。

TEXT:

功能与_T相似,在 ASCII 模式下,它们被忽略,也就是说被预处理器删除掉,但是如果定义了UNICODE, 则它们会将常量字符串转换成等价的 UNICODE 。

TEXT 宏的主要作用是当定义了 UNICODE/_UNICODE 预处理指令时,字符串被标志为双字节字符串,否则字符串被标示为 ANSI 字符串。TEXT 的定义如下:

TEXT(

LPTSTR string // ANSI 或者 Unicode 字符串

)

最新文章

  1. Linux 各目录的作用
  2. TOKEN+签名验证
  3. Hibernate插入数据效率测试
  4. tomcat配置访问日志,访问首页主目录
  5. Windows下的窗口程序
  6. 编译和解释性语言和python运行方式
  7. redis学习-列表(list)常用命令
  8. Mac上Vim的配置文件及插件
  9. js不需要知道图片宽高的懒加载方法(经过实际测试,不加宽高仍然是无法正常加载的,设置height:auto,height:100%,仍然显示高度为0)
  10. Alpha 冲刺 (5/10)
  11. 周期同步位置模式(CSP),轮廓位置模式(PPM),位置模式(PM)
  12. 为chrome设置代理
  13. c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
  14. awk 调用 shell 命令,并传递参数
  15. springboot根据不同的条件创建bean,动态创建bean,@Conditional注解使用
  16. MySQL常用功能语句分类总结
  17. kmean算法C++实现
  18. PHP获取视频的第一帧与时长
  19. Android开发之自己定义TabHost文字及背景(源码分享)
  20. 探索"+"的原本

热门文章

  1. appium(3)-Running Tests
  2. hibernate属性配置
  3. php钩子技术
  4. UVA-11374(最短路)
  5. python装饰器执行顺序
  6. ​MongoDB复制集相关方法使用(五)
  7. PHP mysql_fetch_array与mysql_fetch_row的区别
  8. HUD1686(KMP入门题)
  9. HDU2639(01背包第K大)
  10. bzoj1195