ReleaseBuffer 有什么用呢?
程序代码:#include "u_def.h"
#include <stdio.h>
#include <afx.h>
// #include "u_linearStruct.h"
int main( int ac, char **av )
{
char *pstr = NULL;
CString strIn("zhong");
pstr = strIn.GetBuffer(0);
printf("0:%s\n", pstr);
pstr = strIn.GetBuffer(1);
printf("1:%s\n", pstr);
strIn.ReleaseBuffer();
printf("ReleaseBuffer:%s\n", pstr);
strIn += "yunde";
printf("+ :%s\n", pstr);
strIn.ReleaseBuffer();
printf("+ ReleaseBuffer:%s\n", pstr);
return 0;
}使用上面的代码发现,1)在CString变量的长度发生变化的时候,其内存地址均会被reallocated了,
也就是ReleaseBuffer不管是否调用一次,pstr的地址都不会有效了,那为什么在MSDN上说
使用了GetBuffer再执行其他的操作前需要嗲用ReleaseBuffer
2)发现strIn.GetBuffer(0);和strIn.GetBuffer(1);得到相同的返回值,那这个参数有什么用呢 ?







