注册 登录
编程论坛 VC++/MFC

这两个CString对象怎么无法拼接?

andyandy 发布于 2011-06-10 11:31, 1964 次点击
有这么一段程序——
float a=-999.999;
CString str0,str;
str0="abc";
gcvt(a,8,str.GetBuffer(str.GetLength()));
str0 += str;
调试发现,str0不变。
a转换成str是正确的。
大侠帮帮我。先谢过。     
1 回复
#2
hahayezhe2011-06-10 22:15
str.GetBuffer(str.GetLength())后调用下 str.releasebuffer()就可以了

其实原理就是GetBuffer提供了一段可写的内存,当我们在此内存中写完数据后,该类并不知道我们写完了,也不知道我们写了多长的内容。
所以要用ReleaseBuffer告诉它我们已经写完了,可以收尾了。

我们用这个操作可以避免用new或者malloc来操作

[ 本帖最后由 hahayezhe 于 2011-6-10 22:22 编辑 ]
1