今天遇到了个棘手的问题, 弄了半天才搞定,在此记录下。
问题描述:
MBCS工程中一个函数:
void fun(CString& str1){     char *pstr = str1.GetBuffer();}调用时:

CString str("192.168.1.1");fun(str)
然而在fun中却只能获取第一个字符, 其余都空白:“1                      ”

解决方法:
修改为: 
const char *pstr = str1.GetString();这样就可以了。

分析:
1、GetBuffer 是我们常用的, 可创建所指大小的空间,供修改CString, ReleaseBuffer写回。
GetString是vc9后才有的成员函数,获取const char*。

2、所以, 以后CString转char*,用GetString了,当然你要通过char*修改的CString的话还得用GetBuffer。
至于为什么只获取第一个字符, 估计跟字符集有关。 GetBuffer创建了一样大小的空间,但由于字符识别问题,只复制了第一个字符过去
--------------------- 
作者:rydiy 
来源:CSDN 
原文:https://blog.csdn.net/rydiy/article/details/8007368 
版权声明:本文为博主原创文章,转载请附上博文链接!

CString GetBuffer() GetString()相关推荐

  1. CString::GetBuffer函数作用

    CString::GetBuffer  LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); 对一个CString变量,你 ...

  2. CString:Getbuffer和Releasebuffer的作用

    首先看MSDN中的解释: CString::GetBuffer  LPTSTR GetBuffer( int nMinBufLength );    throw( CMemoryException ) ...

  3. Cstring GetBuffer 和 ReleaseBuffer

    GetBuffer()主要作用是将字符串的缓冲区长度锁定,releaseBuffer则是解除锁定,使得CString对象在以后的代码中继续可以实现长度自适应增长的功能. CString ::GetBu ...

  4. MFC CString GetBuffer ReleaseBuffer方法

    一.函数原型 CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); Return V ...

  5. MFC CString GetBuffer/ReleaseBuffer 的使用条件

    今天为了通过串口往单片机里写一个16进制字符去控制单片机的adc的起停,结果糊涂到把'\x01'误写成'\0x01',怎么也得不到意想的结果,程序员有时候会犯低级错误,有时候怎么也跳不出去,这时候通过 ...

  6. CString的GetBuffer与ReleaseBuffer

    http://blog.pfan.cn/xman/43212.html http://www.cnblogs.com/jamesmile/archive/2010/04/19/1715756.html ...

  7. CString的GetBuffer和ReleaseBuffer

    GetBuffer()主要作用是将字符串的缓冲区长度锁定,releaseBuffer则是解除锁定,使得CString对象在以后的代码中继续可以实现长度自适应增长的功能. CString ::GetBu ...

  8. MFC学习 CString内存泄漏的雷区——GetBuffer与ReleaseBuffer

    GetBuffer()主要作用是将字符串的缓冲区长度锁定,releaseBuffer则是解除锁定,使得CString对象在以后的代码中继续可以实现长度自适应增长的功能. CString ::GetBu ...

  9. GetBuffer与ReleaseBuffer的用法,CString剖析

    转载: http://blog.pfan.cn/xman/43212.html GetBuffer()主要作用是将字符串的缓冲区长度锁定,releaseBuffer则是解除锁定,使得CString对象 ...

最新文章

  1. 【BZOJ】1823: [JSOI2010]满汉全席(2-sat)
  2. C++ STL中常见的typename关键字的作用
  3. java.lang.NoSuchMethodError
  4. C语言实现双向链表删除、插入、双向输出
  5. 2.2_ 4_ FCFS、SJF、 HRRN调度算法
  6. Tensorflow 十六 用tf.keras函数重写Mnist识别
  7. Python之网络编程(实现一个多用户同时在线的FTP用户管理程序)
  8. 通过接口的协议理解sort的本质
  9. 2021-2025年中国宠物美容台行业市场供需与战略研究报告
  10. 全是大事:百度华为联手搞AI;滴滴再融40亿美元也说搞AI
  11. 计算机科学与技术python方向_专业解读丨计算机科学与技术
  12. Vmware 的一些序列号
  13. 0x120-从头开始写操作系统-启动扇区与内存的关系及内存寻址的应用
  14. 达威尔CHERRY樱桃轴 铝合金有线背光电竞吃鸡游戏机械键盘
  15. 推荐一本书:《Visual C++程序开发范例宝典》——你可以找到你想要的实例
  16. Android - 购物车页面【仿】淘宝App
  17. 将pem证书转换为crt/key
  18. K8S部署ingress-nginx
  19. ProM安装以及配置
  20. Linux系统下如何隐藏自己的进程?

热门文章

  1. 2019年Vue学习路线图
  2. 框架:DAO,Service,Controller,View层之间的逻辑关系
  3. Nginx:安装+测试
  4. Vue_error Expected indentation of 2 spaces but found 3 indent问题整理
  5. 盘点全球最美的15座数据中心
  6. 浅谈5G机房配套那些事
  7. Php在线字体woff转svg,在线字体格式转换ttf/otf/eot/woff/woff2格式工具
  8. AI:大力出奇迹?Bigger is better?AI下一代浪潮?—人工智能的大语言模型(LLMs)的简介、发展以及未来趋势
  9. Python之fastparquet:fastparquet的简介、安装、使用方法之详细攻略
  10. CV之FDFA:利用MTCNN的脚本实现对LFW数据集进行FD人脸检测和FA人脸校准