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

 

 最近在写程序时,需要从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 other CString member functions. ”

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

阅读更多
文章标签: mfc string
个人分类: MFC学习心得
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭