_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
有什么好处?
...全文
162 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
实达诚实 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字符

有什么区别呢?
一条晚起的虫 2008-11-26
  • 打赏
  • 举报
回复
_T根据编译环境的不同,自动转换字符格式。
如果在Unicode下,_T("x") = L"x"; //unicode字符
在ANSI下,_T("x") = "x"; //ANSI字符
weidong0210 2008-11-26
  • 打赏
  • 举报
回复
转为UNICODE字符集

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧