MFC CString GetBuffer/ReleaseBuffer 的使用条件
今天为了通过串口往单片机里写一个16进制字符去控制单片机的adc的起停,结果糊涂到把'\x01'误写成'\0x01',怎么也得不到意想的结果,程序员有时候会犯低级错误,有时候怎么也跳不出去,这时候通过写一个测试程序也许就能发现端倪。
下面说说正题。
// get pointer to modifiable buffer at least as long as nMinBufLength
LPTSTR GetBuffer(int nMinBufLength);
// release buffer, setting length to nNewLength (or to first nul if -1)
void ReleaseBuffer(int nNewLength = -1);
用mfc来开发很多会遇到cstring类,对上面的两个函数,有的人很久都没有搞明白是怎么回事,看上面的英文解释。GetBuffer通常是我们希望用到cstring类的字符串的指针,通常传0,如果对返回的指针指向的内容没有修改的话,就不需要调用ReleaseBuffer了,如果修改了这个指针指向的内容,就需要调用ReleaseBuffer了,通常传-1,即重新设置buffer长度为字符串的lengh
看看下面的代码,没有调用ReleaseBuffer的话长度变成16,但内容却是"abc",也就是说后面的拼接"123456789”没有起作用。这就印证了我上面所说的。
CString abc = _T("abcdefg");
LPTSTR str = abc.GetBuffer(0);
str[3] = '\0';
//abc.ReleaseBuffer();
abc += _T("123456789");
int length = abc.GetLength();
AfxMessageBox(abc);
转载于:https://www.cnblogs.com/ransn/p/8079138.html
MFC CString GetBuffer/ReleaseBuffer 的使用条件相关推荐
- MFC CString GetBuffer ReleaseBuffer方法
一.函数原型 CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); Return V ...
- MFC CString的GetBuffer()/ReleaseBuffer()
CString GetBuffer()/ReleaseBuffer()两个方法的使用 LPTSTR GetBuffer(int nMinBufLength); void ReleaseBuffer(i ...
- CString 中Releasebuffer GetBuffer 相关实现原理
一.函数原型 CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); Return V ...
- CString:Getbuffer和Releasebuffer的作用
首先看MSDN中的解释: CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ) ...
- 精解CString类的GetBuffer,ReleaseBuffer 函数(VC++)
CString的GetBuffer用法 一.函数原型 CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryE ...
- Getbuffer ReleaseBuffer Cstring
getbuffer是为了让你使用CString类中,保存字符串缓冲区的那块指针. 至于releasebuffer,在MSDN中有这样一句话. If you use the ...
- Cstring GetBuffer 和 ReleaseBuffer
GetBuffer()主要作用是将字符串的缓冲区长度锁定,releaseBuffer则是解除锁定,使得CString对象在以后的代码中继续可以实现长度自适应增长的功能. CString ::GetBu ...
- CString GetBuffer() GetString()
今天遇到了个棘手的问题, 弄了半天才搞定,在此记录下. 问题描述: MBCS工程中一个函数: void fun(CString& str1){ char *pstr = str1.Ge ...
- CString::GetBuffer函数作用
CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); 对一个CString变量,你 ...
最新文章
- tmux系统剪切板_实践中的tmux:与系统剪贴板集成
- JAVA语言基础-面向对象(集合框架02List、泛型)
- pandas删除dataframe中行内容全是0的数据行(remove rows with all zeros in dataframe)
- android 开发使用adb操作sqlite
- ajax请求的五个步骤_监控整个页面,非AJAX,需要通知
- hadoot配置环境变量win_Windows 下Hadoop的环境变量配置
- redis学习(四)
- 零基础学java web开发pdf_新手学Java Web开发.pdf
- 《孙子兵法》【作战第二】
- 制作cab文件(Windows自带的makecab)
- 月入1万,在北上广深能过什么样的生活?
- 建立windows2003 域名服务器
- 在MOSS2007中使用网页获取部件
- bc547可以用8050代换吗_怀孕可以用婴儿护肤品吗?
- php怎么判断未定义索引数组,PHP数组查找中的未定义索引
- 汇川IS620F PN博途使用FB284<111报文>进行基本定位,及GSD/使用说明下载<替换V90>
- PDF区域文本提取工具
- 网络模块封装-axio
- amd支持服务器内存,AMD专用内存为什么只能在AMD平台使用?与普通内存有什么区别?...
- pyspark案例系列11-ALS推荐算法
热门文章
- 论文阅读:A Semantic-based Method for Unsupervised Commonsense Question Answering
- 【C语言】C语言实现的无页面扫雷游戏 2.0
- Linux xshell通过ssh连接Linux系统
- linux下mkdirs方法乱码,linux 解压zip中文乱码问题
- plsql操作oracle数据库删除重复数据
- 阿里巴巴开发手册整理
- JAVA计算机毕业设计校园绿化管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
- 5.5 super关键字
- 关于DBN fine-tunes使用BP多于up-down算法的一点看法
- java数组顺序_Java – 按时间排序数组