MFC 中GetBuffer()和ReleaseBuff()的使用

来源:互联网 发布:java个人日程管理系统 编辑:程序博客网 时间:2024/05/12 01:09
 

 最近在写程序时,需要从CEdit控件中读取一行数据,并对数据进行操作

CString str1;

CString str2;

CEdit m_data;

int lenOneLine;

...

for(int i=0;i<100;i++)

{

          lenOneLine=m_data.LineLength(m_data.LineIndex(i));//获得一行的长度

          m_data.GetLine(i,str1.GetBuffer(lenOneLine),lenOneLine);//获得一行的内容

          str2=str2+str1;

}

MessageBox(str2);

 

结果是:str2始终是空字符。查看MSDN后发现是函数GetBuffer()的问题

“If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer() before using any otherCString member functions. ”

str2=str2+str1前面加上一句:str1.ReleaseBuff(),结果正常显示啦!

原创粉丝点击