VS2005中的类型转换问题

waitlife 2006-03-01 04:47:43
我要把int转换为CString,在VC6或VS2003中可以这样:
  
    int ia = 0;
    CString ca;
    ca.Format("%d",ia);

  把CString转换为int,在VC6或VS2003中可以这样:
    ia = atoi(ca);

  在VS2005中,如果不打开unicode支持,以上代码可能通过,但如果打开Unicode支持,则无法通过。

  把CString转换为int错误显示:
    错误 1 error C2664: 'atoi' : cannot convert parameter 1 from 'CString' to 'const char *'

  把int转换为CString错误显示:
    错误 2 error C2664: 'void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)' : cannot convert parameter 1 from 'const char [3]' to 'const wchar_t *'

解决如何解决?
...全文
135 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
waitlife 2006-03-02
  • 打赏
  • 举报
回复
谢谢二位,这个问题已经解决,准备结贴,但不知道怎么给分和结贴!郁闷
菜牛 2006-03-01
  • 打赏
  • 举报
回复
试试
ca.Format(_T("%d"), ia);
ia = _tstoi(ca);

这个在VC 2002/2003甚至VC 6下面都是一样的。
poney 2006-03-01
  • 打赏
  • 举报
回复
atoi改为_ttoi
类似的字符串转换函数尽量用“_t”的吧,同时兼容unicode和非unicode。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧