广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    MFC中怎样把CString类型转换成char*型

    来源:网络收集  点击:  时间:2024-02-19
    【导读】:
    mfc编程中经常会遇到CString类型转换成char*型的问题,有时候直接转换会出现各种莫名其妙的错误,那到底有什么方法技巧呢?工具/原料morevs2010电脑方法/步骤1/6分步阅读

    第一种方法如代码所示,

    CStringstrTemp;charszTemp;strTemp=_T(abckdkfei);memset(szTemp,0,sizeof(szTemp));strcpy(szTemp,strTemp.GetBuffer(strTemp.GetLength()));

    2/6

    第二种方法可以使用(LPSTR)(LPCSTR)强转,

    char*pchar;CStringstr=hello;pchar=(LPSTR)(LPCSTR)str;

    但是有时候因为编码的问题会出现错误。

    3/6

    第三种方法代码如下所示,

    charszTemp;CStringstrTemp=123456789;memset(szTemp,0,sizeof(szTemp));sprintf(szTemp,%s,strTemp);

    4/6

    第四种方法,如果是基于UNICODE的,那么直接强制转换是不行的,直接转换在基于MBCS的工程可以,而在基于UNICODE的工程是不行的,CString会以UNICODE的形式来保存数据,强制类型转换只会返回第一个字符。d

    方法一:可以用API:WideCharToMultiByte进行转换方法二:可以添加文件#includeafxpriv.h然后这样:CStringstrTest=_T(abcd);USES_CONVERSION;LPSTRlpszTest=T2A(strTest);这样应该可以的。

    5/6

    第五种最笨的办法可以把CString先转换成String再转换成char*。但是好多时候很麻烦也会出现各种错误。

    6/6

    第六种办法比较麻烦,可以试试WideCharToMultiByte,这种方法一般都有效。

    CStringstr;

    DWORDdwNum=WideCharToMultiByte(CP_OEMCP,NULL,str,-1,NULL,NULL,0,NULL);

    char*c=newchar;WideCharToMultiByte(CP_OEMCP,NULL,str,-1,c,dwNum,0,NULL

    注意事项

    遇到问题的方法各种方法都尝试一下肯定能找到问题的解决办法的,哈哈~~

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_75635.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 18:13:58  耗时:0.027
    0.0267s