弱弱的问一声:_T函数是什么意思

hpfeng 2006-07-02 11:11:42
我的MSDN是e文,看了也不清楚到底这函数是干什么的,还有新手遇到这些问题该看什么中文资料呢?多谢多谢:)
...全文
429 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnzhu 2006-07-03
  • 打赏
  • 举报
回复
实现Unicode字符,这样
如果 "Hello"用ASCII码,占用5个字符
_T("Hello")就占用10个字节,根据的是用了L"Hello!";
我们平时编程是在ASCII码下编程,怎么在Unicode下编程呢
如何在UNICODE下编程呢,为工程添加UNICODE和_UNICODE预处理选项(有的还说去除_MBCS,我认为不除去也可以),在编译器中进行如下的设置
(1)VC.net中就是 项目 -> 属性 -> c/c++ -> 预处理器 在"预处理定义"中加入这两个宏定义
(2)vc6中 project -> settings -> c/c++ -> Preprocessor definitions
(3)引入TCHAR.h文件,好像不需要单独引入,windows.h中就自动引入了
(4)在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下
(5)在Project/Setting/link/output 中设置Entry为wWinMainCRTStartup(不设置好像也可以)




我们平时工作的环境是ASCII的,不是UNICODE的,比如我们调用MessageBox函数可以这样调用
MessageBox(NULL, "hello", "caption", MB_OK);,但在UNICODE下这样是不行的必须用MessageBox(NULL, L"hello", L"caption", MB_OK);为什么同样是MessageBox会有这样的不同呢,原来对MessageBox进行了如下的定义
#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif // !UNICODE
其它的函数也进行了如此的宏定义。
Featured 2006-07-03
  • 打赏
  • 举报
回复
楼上正解
T不是函数,而是宏

建议楼主利用VC的IDE再自己摸索一下,加深理解
先用watch查看字符串的内存位置,然后查看对应memory的内容
yuyuan830705 2006-07-03
  • 打赏
  • 举报
回复
转变成宽字符串。也就是Unicode字符
纠正一下。应该是转换成 MBCS。
比如:
TCHAR a[1] = _T("a");
在PC环境下面:内存是这样的:0x61 0x00
在WINCE环境下面:内存是这样的:0x00 0x61 0x00 0x00
whp320 2006-07-03
  • 打赏
  • 举报
回复
转变成宽字符串。也就是Unicode字符
Pipi0714 2006-07-03
  • 打赏
  • 举报
回复
宏定义,转换成TCHAR



















ruby0602 2006-07-03
  • 打赏
  • 举报
回复
_T是个宏,不同操作系统里有不同的宽度
wcmj 2006-07-03
  • 打赏
  • 举报
回复
_T是一个宏,为的是程序能较好的在不同平台运行
hhyytt 2006-07-03
  • 打赏
  • 举报
回复
TEXT()宏的另一个版本。实现宽字符。
xiaoshi0 2006-07-02
  • 打赏
  • 举报
回复
_T的意思如下:

在Windows操作系统中,以现在的版本来讲,Windows2000和WindowXP都是用Unicode字符的,也就是说一个字符占2个字节,而原来的Window98是用ASCII字符的,也就是一个字符占一个字节。

这样在编程的时候就会遇到字符串转换的问题。

_T是一个宏定义,用来在Unicode字符编码的时候,将你输入的字符串当作Unicode字符串,在ASCII字符编码的时候将你输入的字符串当作ASCII字符串。

16,472

社区成员

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

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

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