由于本人对MFC了解很少,菜鸟一枚,最近又要写一个文件对比小工具,所以此篇文章适合像我这种没怎么用过mfc的菜鸟。
昨天遇到了一个问题就是CString转换为char*失败,使用memncpy发现char数组中只显示第一个字符,上网搜了其他的转换方法,发现都是同样问题,后来在网上查到了原来字符集的问题,CString类对象GetBuffer()后,还是unicode编码,所以必须将宽字符转换成char类型,所以本人使用了下面的方法:

Unicode下CString转换为char *的方法:

int len = WideCharToMultiByte(CP_ACP,0,NewPath,NewPath.GetLength(),NULL,0,NULL,NULL);
char * szNewTemp = new char[len+1];   //以字节为单位
memset(szNewTemp, 0, sizeof(char)*(len+1));
WideCharToMultiByte(CP_ACP,0,NewPath,NewPath.GetLength(),szNewTemp,len,NULL,NULL);
szNewTemp[len] = '/0';

这样就将CString类型的NewPath成功转换成char*的szNewTemp。

CString转换为char*相关推荐

  1. WIN32开发之Unicode字符集下cstring转换为char[]相互转换

    1.CString转char[] CString SeveName:// char ch[100]; memcpy(a, SeveName, SeveName.GetLength() * 2); fo ...

  2. 在宽字节环境下获取EditBox中的CString转换为char[]

    2019独角兽企业重金招聘Python工程师标准>>> 用多字节编码的话可以试试这个 char temp[4]; CString str = _T("23"); ...

  3. MFC CString转换为char*

    CString origw("fabregas"); const size_t newsizew = (origw.GetLength() + 1)*2; char *nstrin ...

  4. UniCode 下 CString 转 char* 的方法

    今天进行文件操作时,将CString的GetBuffer()后直接倒到char数组后写入文件发现 每个字符与字符之间都有一个空格存在,而且有内容丢失.原来CString类对象GetBuffer(),后 ...

  5. VC++2005 CString和char*的相互转换

    原文:http://laue.cnblogs.com/archive/2005/12/26/305208.aspx 首先声明我不是一个高手,而是一个初学者,文章同样也是一个初学者对于CString和c ...

  6. CString 和 char * 的相互转换

    _T的作用 _T和_TEXT是一样的,一般情况_T("Kurt")和"Kurt"没有什么区别.但对于UNICODE,一般加上_T. 如果想编译UNICODE版本 ...

  7. CString、char*之间的相互转换

    1   CString   转换为     char*        CString   str( "lkjkhhgaf ");        int   nLenth   =   ...

  8. Unicode字符集下CString与char *转换 (解决中文乱码等)(转)

    UniCode 下 CString 转 char* 的方法的文章有很多,但是大部分都是在互相转载,看了那么多资料,仍然没有解决乱码的问题,后来从一个论坛的一条回复里面找到了正确的方法,特此拿出来与大家 ...

  9. VC++中CString和char*的相互转换

    网上转来的 学习下 1.传给未分配内存的const char* (LPCTSTR)指针.    CString cstr(asdd);    const char* ch = (LPCTSTR)cst ...

最新文章

  1. ASP.net中太长的数据缩略显示
  2. R语言使用ggpubr包绘制出版社、编辑、审稿人要求的可视化图形实战
  3. 常用的js验证数字,电话号码,传真,邮箱,手机号码,邮编,日期
  4. scikit-learn (sklearn) 官方文档中文版
  5. Kettle, Solr
  6. C#中yield return用法
  7. 开始使用C++11的9个理由
  8. 十六进制转八进制c++代码_如何将十六进制代码上传到微控制器?
  9. 【转】契约测试的必要性
  10. python将灰度图转为彩色值_python实现彩色图转换成灰度图
  11. 怎么样把 swf格式 转换为flv格式
  12. Windows清理C盘空间
  13. SAP 如何保证同一销售业务产生的收入和成本计入相同的会计期间?
  14. 龙贝格算法的实现以及与复合梯形公式精度的比较
  15. 天津大学计算机学院研究生报录比,天津大学2017年考研报录比
  16. open cv平面对象检测及翘曲图像校正-基于FLANN的特征检测和透视变换
  17. kettle脚本Linux执行,kettle在linux下面用于shell脚本执行:转换或者作业
  18. 20221222英语学习
  19. 第一章 cucumber测试框架综述
  20. 迷时师度 悟了自度--侯捷

热门文章

  1. mysql ibtmp1 太大_mysql5.7 ibtmp1文件过大
  2. php调用第三方的api,PHP接口编程——调用第三方接口获取天气
  3. matlab 放射治疗,dicom-rt解析及在精确放射治疗计划系统中的应用.pdf
  4. 反卷积(Deconvolution)、上采样(UNSampling)与上池化(UnPooling)加入自己的思考(pytorch函数)(二)
  5. 决策树ID3、C4.5、CART、随机森林、bagging、boosting、Adaboost、GBDT、xgboost
  6. Python风格总结:Python3 标准库概览
  7. String去重方法
  8. C#_基础,初始化器
  9. Linux 删除mysql数据库失败的解决方法
  10. 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面.