我用VS2005编程时,为什么有时需要_T(""),有时又不需要_T("")?
例如AfxMessageBox(_T("Hello"))和AfxMessageBox("Hello")),其中之一有时能通过编译,有时又不能通过编译?
甚是困惑!与IDE设置有关吗?
请教专家!谢谢!
例如AfxMessageBox(_T("Hello"))和AfxMessageBox("Hello")),其中之一有时能通过编译,有时又不能通过编译?
甚是困惑!与IDE设置有关吗?
请教专家!谢谢!
如果不是,像是 char *,LPSTR,LPCSTR的时候,就要用8位的字符了
原因等你明白了 ANSI UNICODE 的区别之后自然懂得了。
在IDE里面是可以设置是多字节的,还是宽字符的。
可以看看windows核心编程,里面有一章专门讲这个unicode
可以理解成很多函数的参数就要使用宽字符的字符串 比如LPCTSTR之类
用了_T()的话就可以把字符串变为unicode格式 就是wchar型数组(每个字母占两个字节)
如果没设置unicode的话
部分函数的参数就会是使用之前一直学习的普通char组了
而用了_T()的那个字符串还是原来的ansi格式 就是常见的char型数组(每个字母占一个字节)呃 以上是我个人理解···用词可能不准确 不过比较容易记住吧···
将参数中的字符转换成:Unicode,Multibyte-character或SBCS编码