菜鸟问题:使用_T宏和不使用_T宏有什么区别? _T好像是UNICODE才使用的,我看到很多例程里都使用了这个,但是不明白的是,我平时用不使用MessageBox(_T("你好"))之类的方法,而是直接用MessageBox("你好")也可以阿,看不出什么区别,所以请教_T的作用,请大哥讲得详细写,谢谢如果说得不清楚,我可以继续描述补充我的问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MessageBox("你好")在Unicode版本的程序里面不能通过编译,因为MessageBoxW不能用ANSI的字符串作参数 当定义了UNICODE 或_UNICODE时_T() 就相当于L"",也就是说把括号里的字符变成了16B字符;否则它就是一个ANSII码的8B字符。一般我们现在都用8B符,所有就没事了。因为MessageBox也是个宏。在头文件中它也有以下定义#ifdef UNICODEMessageBox MessageBoxW#elseMessageBox MessageBoxA#endif MessageBox MessageBoxW应为#define MessageBox MessageBoxW下面也一样:)) _T可以把字符串根据你的编译参数自动转换字符串_T可以在_UNICODE宏下,将后面的字符串自动转换到unicode格式 老大,我还不是很明白阿!那我平时程序到底要不要加_T呢?我写的是Unicode程序,平时不加_T也可以的阿? 加_T是个好习惯,帮你减少很多Unicode和ANSI的潜在问题。 定义了UNICODE就一定要用这个宏,否则会有编译错误。因为windows的大多数与文字有关的api都是分为UNICODE和ANSI版。当定义了UNICODE,所有具有UNICODE和ANSI版的aip都会被替换为相应的版本。比如Massagebox,一般我样直接使用MessageBox这个函数名,但实际上这是个宏。这个函数有MessageBoxA(ASCII版),另一个名为MessageBoxW(宽字符版)两者的参数类型不同的。 看你的编译方法了如果是UNICODE,那么需要加_T如果不是,那么可以加也可不加 2000支持unicode和ansi,不加_T系统先转换unicode再传递给过去。 遍历PCI转成的USB 问题 EDIT滚动的问题 跪求 请高手指点浏览器插件对应于注册表中的那一个位置 求教大侠们 关于ATL COM工程编译错误 CTreeCtrl中重绘时出现的问题(求救啊!) 内存泄漏的问题 高分求救!关于两个数据库倒数据的问题! 怎么连接远程数据库?? 兄弟们,如何在CEdit控件中,找出光标前一个字符距离起始位置的序号? 怎样得到工具栏的停靠状态? 各位师兄请帮忙!!!
_T() 就相当于L"",也就是说把括号里的字符变成了16B字符;
否则它就是一个ANSII码的8B字符。
一般我们现在都用8B符,所有就没事了。
因为
MessageBox也是个宏。
在头文件中它也有以下定义
#ifdef UNICODE
MessageBox MessageBoxW
#else
MessageBox MessageBoxA
#endif
应为
#define MessageBox MessageBoxW
下面也一样
:))
我写的是Unicode程序,平时不加_T也可以的阿?
如果不是,那么可以加也可不加