• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

_T的问题

实达诚实 2008-11-26 03:07:35
我在一个程序里面看见这样的一段代码

CFileDialog dlgFile( TRUE, 
_T("avi"),
NULL,
OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR,
_T("avi Files (*.avi)|*.avi|All Files (*.*)|*.*||") );
dlgFile.m_ofn.lpstrTitle = _T("请选择AVI文件");


请问使用
_T
有什么好处?
...全文
125 点赞 收藏 20
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
实达诚实 2008-12-01
[Quote=引用 18 楼 jiyuanjie 的回复:]
windows 核心编程第二章也讲这个
[/Quote]

去购买一本看看
回复
Mr_LJ2 2008-11-29
学习学习, 研究研究中...
回复
jiyuanjie 2008-11-28
windows 核心编程第二章也讲这个
回复
sffofn 2008-11-28
加_T主要是为了兼容一些不支持ANSI的机器的
回复
hacker1125 2008-11-28
学习了
回复
实达诚实 2008-11-28
[Quote=引用 14 楼 smaltdd 的回复:]
引用 2 楼 lfchen 的回复:
_T根据编译环境的不同,自动转换字符格式。
如果在Unicode下,_T("x") = L"x"; //unicode字符
在ANSI下,_T("x") = "x"; //ANSI字符


顶这个

关于unicode和ansi的区别,上网gg一下吧。这就关系到各种不同语言(中英日等等)通用性的问题了
[/Quote]

好的!谢谢提醒
回复
smaltdd 2008-11-28
[Quote=引用 2 楼 lfchen 的回复:]
_T根据编译环境的不同,自动转换字符格式。
如果在Unicode下,_T("x") = L"x"; //unicode字符
在ANSI下,_T("x") = "x"; //ANSI字符
[/Quote]

顶这个

关于unicode和ansi的区别,上网gg一下吧。这就关系到各种不同语言(中英日等等)通用性的问题了
回复
opb75124 2008-11-28
學習!!
回复
实达诚实 2008-11-27
[Quote=引用 8 楼 csKerrydn 的回复:]
当开发应用程序时,当然应该考虑利用U n i c o d e 的优点。即使现在你不打算对应用程序进行本地化,开发时将U n i c o d e 放在心上,肯定可以简化将来的代码转换工作。此外,U n i c o d e 还具备下列功能:

• 可以很容易地在不同语言之间进行数据交换。

• 使你能够分配支持所有语言的单个二进制. e x e 文件或D L L 文件。

• 提高应用程序的运行效率

即使你不打算立即使用U n i c o d e ,最好也应该着手将…
[/Quote]

这个需要慢慢的理解和体会
回复
实达诚实 2008-11-27
[Quote=引用 6 楼 saylerboxer 的回复:]
看 Charls Pezold 的 《windows程序设计》 前2章
[/Quote]

这个书籍没有卖的了!
回复
gnuljf 2008-11-27
[Quote=引用 4 楼 numen27 的回复:]
ANSI字符集一个字符占一个字节(英文一般用ANSI字符集表示就够了),Unicode字符集一个字符占两个字节(中文需要用Unicode字符集表示)。
[/Quote]
Unicode字符倒未必一定是占2个字节,具体还要看系统而定。
回复
feng1976 2008-11-26
API是分为Unicode版和MultiBytes版的,前者在函数后头加W,后者加个A
_T宏是根据是否定义了UNICODE宏,把字符床格式化,形式楼上都说了

Unicode版和MultiBytes版的API是不能混用的
回复
csKerrydn 2008-11-26
当开发应用程序时,当然应该考虑利用U n i c o d e 的优点。即使现在你不打算对应用程序进行本地化,开发时将U n i c o d e 放在心上,肯定可以简化将来的代码转换工作。此外,U n i c o d e 还具备下列功能:

• 可以很容易地在不同语言之间进行数据交换。

• 使你能够分配支持所有语言的单个二进制. e x e 文件或D L L 文件。

• 提高应用程序的运行效率

即使你不打算立即使用U n i c o d e ,最好也应该着手将你的应用程序转换成符合U n i c o d e 的应用程序。下面是应该遵循的一些基本原则:

• 将文本串视为字符数组,而不是c h a r s 数组或字节数组。
• 将通用数据类型(如T C H A R 和P T S T R )用于文本字符和字符串。
• 将显式数据类型(如B Y T E 和P B Y T E )用于字节、字节指针和数据缓存。
• 将 _T 宏用于原义字符和字符串。
• 执行全局性替换(例如用P T S T R 替换P S T R )。
• 修改字符串运算问题。例如函数通常希望你在字符中传递一个缓存的大小,而不是字节。
回复
night_legend 2008-11-26
过来学习一下,呵呵。
回复
猞猁狲 2008-11-26
看 Charls Pezold 的 《windows程序设计》 前2章
回复
寒冰雪 2008-11-26
学习了
回复
numen27 2008-11-26
ANSI字符集一个字符占一个字节(英文一般用ANSI字符集表示就够了),Unicode字符集一个字符占两个字节(中文需要用Unicode字符集表示)。
回复
实达诚实 2008-11-26
[Quote=引用 2 楼 lfchen 的回复:]
_T根据编译环境的不同,自动转换字符格式。
如果在Unicode下,_T("x") = L"x"; //unicode字符
在ANSI下,_T("x") = "x"; //ANSI字符
[/Quote]

ANSI字符
unicode字符

有什么区别呢?
回复
_T根据编译环境的不同,自动转换字符格式。
如果在Unicode下,_T("x") = L"x"; //unicode字符
在ANSI下,_T("x") = "x"; //ANSI字符
回复
weidong0210 2008-11-26
转为UNICODE字符集
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-11-26 03:07
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……