• 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的,所以需要改变。
  • 相关阅读:
    ubuntu安装ActiveMQ
    UTF-8和GBK区别
    MapReduce实现二次排序(温度年份排序)
    MapReduce实现倒排索引
    MapReduce实现多表链接
    MapReduce实现单表链接
    Linux服务器的性能调优实战篇CentOS6最小化安装后的优化
    Linux服务器的性能调优理论篇
    Windows中安装bash Cygwin工具
    shell基础知识
  • 原文地址:https://www.cnblogs.com/mao0504/p/5922566.html
Copyright © 2020-2023  润新知