在MSDN中解释其功能为:Returns a pointer to the internal character buffer for the CString object。
   请问这个buffer是什么时候创建的,有多大?

解决方案 »

  1.   

    你调用GetBuffer(int)时创建的
    大小你可以自己定义
    就是里面的int参数
    ReleaseBuffer时
    这个缓冲区的内容就是CString的内容了
      

  2.   

    CString本来就有段字符缓冲区
    它会根据需要来改变缓冲区的大小
    这段缓冲区应该是本来就有的
    如果你传进去参数的比原来的大
    它会自动改变
      

  3.   

    谢谢,还有,是不是我们每次使用CString.GetBuffer()之后都必须要调用CString.RealseBuffer()?
      

  4.   

    补充一点:CString 用引用计数管理内部的字符串缓冲区,这个缓冲区有可能是被多个 CString 共享的,GetBuffer 调用使 CString 认为你需要写入这个缓冲区,为了避免同时更改其他 CString ,CString 如果发现有其他 Cstring 共享缓冲区,就 Release 旧缓冲区重新申请新缓冲区。ReleaseBuffer 的作用是通知 CString 更改完毕,CString 将重新计算缓冲区字符串的长度并保存。