• 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的,所以需要改变。
  • 相关阅读:
    servlet 将输入内容通过拼接页面的方式显示出来
    localstorage和vue结合使用
    vue的通讯与传递props emit (简单的弹框组件)
    jquery插件之选项卡
    详解Cookie纪要
    jsonp
    滚动条样式
    axios基本使用
    IOS安卓常见问题
    简单购物车
  • 原文地址:https://www.cnblogs.com/mao0504/p/5922566.html
Copyright © 2020-2023  润新知