将LPTSTR p = s.GetBuffer( 2 ); 修改为:LPTSTR p = s.GetBuffer( 10 ); 测试结果同1。 测试3: 在测试二的LPTSTR p = s.GetBuffer( 10 );后添加 p[5]='f'; 测试结果同1。 测试4: 将测试三的p[5]='f';修改为p[4]='e'; 测试结果4: (1)before GetBuffer: CString s.length=4 CString ...
很明显ReleaseBuffer的作用就是更新字符串的长度。 CString内,GetLength获取字符串长度并不是动态计算的,而是在赋值操作后计算并保存在一个int变量内的,当通过GetBuffer直接修改CString时,那个int变量并不可能自动更新,于是便有了ReleaseBuffer. 示例:下面的例子说明了如何用CString::GetBuffer和CString::ReleaseBuffer(最好逐...
这是GetBuffer 的第一种用法,也是最简单的一种,不用给它传递参数,它使用默认值 0,意思是:“给我这个字符串的指针,我保证不加长它”。当你调用 ReleaseBuffer 时,字符串的实际长度会被重新计算,然后存入 CString 对象中。 必须强调一点,在 GetBuffer 和 ReleaseBuffer 之间这个范围,一定不能使用你要操作的这个缓冲...
此成员函数返回一个指向CString对象的内部字符缓冲区的指针。返回的LPTSTR不是const,因此可以允许直接修改CString的内容。如果你使用由GetBuffer返回的指针来改变字符串的内容,你必须在使用其它的CString成员函数之前调用ReleaseBuffer函数。在调用ReleaseBuffer之后,由GetBuffer返回的地址也许就无效了,因为其它的CStr...
GetBuffer(0):意思是将字符串对象原样返回指针,不改变大小 2.使用例子 例子: // example for CString::GetBuffer CString s( "abcd" );//定义一个CString s并且初始化为abcd #ifdef _DEBUG afxDump << "CString s " << s << "\n"; #endif LPTSTR p = s.GetBuffer( 10 );//定义一个指针指向LPTST...
char*p=strTest.GetBuffer(0); inti=atoi(p); strTest.ReleaseBuffer(); 这种用法当然没有错,但是我认为这里的GetBuffer/ReleaseBuffer是没有必要的,为什么呢?因为 int __cdecl atoi(const char *)的参数是const char*,CString的内部数据肯定不会被修改的. ...
char *GetBuffer(n) 当n大于0时,是为CString变量分配一个长度为n的字节数组,返回值是这个数组的地址 当n等于0时,返回CString变量本身拥有的字符串数组的头 ReleaseBuffer一般用在GetBuffer,因为在调用了GetBuffer后变量本身会给自己上锁,于是所有能改变自身值的函数都不能用(如果Left,Mid),要用ReleaseBuffer解锁 ...
1.GetBuffer函数说明 这个函数是为一个CString对象重新获取其内部字符缓冲区的指针,返回的LPTSTR为非const的,从而允许直接修改CString中的内容。 如果nMinBufLength(最小占用长度) 比当前buffer长度大,那么就调用GetBuffer函数去释放当前的Buffer,用一个被请求的大小去覆盖这个buffer并且重新设定计数器为0,如果在这之前你...
RetCode=RegQueryValueEx(hKey,(LPCTSTR)FieldName,0,0,(unsigned char*)sTemp.GetBuffer(256),&nBufSize); sTemp.ReleaseBuffer(-1); Calling ReleaseBuffer(-1) tells the CString to go through and find the actual length of the string (by looking for a null terminator), get ...
cstring的getbuffer用法getbuffer本质getbuffer常见问题解决方法chargetbuffern当n大于0时是为cstring变量分配一个长度为n的字节数组返回值是这个数组的地址当n等于0时返回cstring变量本身拥有的字符串数组的头releasebuffer一般用在getbuffer因为在调用了getbuffer后变量本身会给自己上锁于是所有能改变自身值的函数都不能用如果...