vc6.0转vs2005中字符串的问题

 
简单一点:就是project->Property->Configuration Property-->general-->Character Set:No Set即可。详细分析见下面: 
C++中的字符类型:Wchar,char,其中Wchar是宽字符,即Unicode,每个字符都是两个字节。char类型就是一般的ASCII码,另外的多字节编码与此类似(MBCS)。但是W与A这两种类型是截然不同的,为了书写的统一,定义了一种Tchar的类型,这种类型在你程序编译为Unicode是,就是Wchar类型,反之为char类型。
_T("")就是这种类型,L“”,就是指Wchar,什么都没有就是char类型。
对于GetLength()而言,其Unicode的话,得到是字符数,不是字节数。对于ASCII码而言是字节数。
对于预定义的不同,#define Unicode 的情况下是TEXT(""),而vs2005中貌似是预定义_Unicode,因此式_T("")。
对于LPCTSTR中的T就是TEXT或者_T的意思,C指的是常数。
对于W,A,T之间的转换,(A指的就是ASCII码)有专门的宏:
W2T("",""),W2CT等。
MultiByteToWideChar函数也可以用来转换。

为了简单意见,编译设置的时候统统采用no set,即不采用unicode编码,这样vs2005就能直接使用vc6.0了,因为vc6.0默认是ASCII的,而vs2005默认是unicode的,所以需要改变。

 

 

文章出处:http://www.sciencenet.cn/m/user_content.aspx?id=361730

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值