strcpy(cBuffer, _T("无变化"));
strcpy只是用在asci环境下,那么这里_T("无变化")加这个_T宏
有什么用处呢?
还有个问题恳请大家帮忙,那就是我程序里所有的字符串前都加了
_T宏,为的是想支持宽字符或UNICODE环境,可是程序里许多函数都
是asci环境下的,如strcpy,那么遇到这些情况该怎么处理呢?加这
些_T宏有意义吗?
谢谢!急!
6 个解决方案
#1
如果定义了UNICODE宏 strcpy(cBuffer, _T("无变化"))会出错;
正确用法是:
_tcscpy(cBuffer, _T("无变化"));
正确用法是:
_tcscpy(cBuffer, _T("无变化"));
#2
那我程序里用到的大量ascii环境下的函数
是否要全部修改啊?
是否要全部修改啊?
#3
一般用ascii就可以了,如果没有必要,不需要用_T
#4
完全同意:QunKangLi(维护成本与程序员的创造力的平方成正比) 的意见,我吃过不少苦了,
定义字符串最好用带T的,如TCHAR,LPCTSTR,LPTSTR,函数也一样,如_tcslen(),_tcscpy();
这样,在需要从非unicode转到unicode或者做相反转换的时候,最小的改动你的代码。
定义字符串最好用带T的,如TCHAR,LPCTSTR,LPTSTR,函数也一样,如_tcslen(),_tcscpy();
这样,在需要从非unicode转到unicode或者做相反转换的时候,最小的改动你的代码。
#5
?
#6
我也不清楚为什么要用 unicode ,应该是为了语言的国际化吧,可是 Win98 只有很少的函数支持 unicode ,那么它是如何做到国际化这个概念的的呢,我不明白。
看了 《Windows程序设计》 上面写的,对于 ascii 和 unicode ,系统提供了两套不同的字符串操作函数,因为两种所占的字节数不相同,所以计算起来是不一样的。
最好用的时候查一下 MSDN ,一般都可以找到的。
如果有说的不对的地方,欢迎指正。
看了 《Windows程序设计》 上面写的,对于 ascii 和 unicode ,系统提供了两套不同的字符串操作函数,因为两种所占的字节数不相同,所以计算起来是不一样的。
最好用的时候查一下 MSDN ,一般都可以找到的。
如果有说的不对的地方,欢迎指正。
#1
如果定义了UNICODE宏 strcpy(cBuffer, _T("无变化"))会出错;
正确用法是:
_tcscpy(cBuffer, _T("无变化"));
正确用法是:
_tcscpy(cBuffer, _T("无变化"));
#2
那我程序里用到的大量ascii环境下的函数
是否要全部修改啊?
是否要全部修改啊?
#3
一般用ascii就可以了,如果没有必要,不需要用_T
#4
完全同意:QunKangLi(维护成本与程序员的创造力的平方成正比) 的意见,我吃过不少苦了,
定义字符串最好用带T的,如TCHAR,LPCTSTR,LPTSTR,函数也一样,如_tcslen(),_tcscpy();
这样,在需要从非unicode转到unicode或者做相反转换的时候,最小的改动你的代码。
定义字符串最好用带T的,如TCHAR,LPCTSTR,LPTSTR,函数也一样,如_tcslen(),_tcscpy();
这样,在需要从非unicode转到unicode或者做相反转换的时候,最小的改动你的代码。
#5
?
#6
我也不清楚为什么要用 unicode ,应该是为了语言的国际化吧,可是 Win98 只有很少的函数支持 unicode ,那么它是如何做到国际化这个概念的的呢,我不明白。
看了 《Windows程序设计》 上面写的,对于 ascii 和 unicode ,系统提供了两套不同的字符串操作函数,因为两种所占的字节数不相同,所以计算起来是不一样的。
最好用的时候查一下 MSDN ,一般都可以找到的。
如果有说的不对的地方,欢迎指正。
看了 《Windows程序设计》 上面写的,对于 ascii 和 unicode ,系统提供了两套不同的字符串操作函数,因为两种所占的字节数不相同,所以计算起来是不一样的。
最好用的时候查一下 MSDN ,一般都可以找到的。
如果有说的不对的地方,欢迎指正。