请问怎样获得CString的指针地址呀!

leech42 2002-03-31 08:24:30
大虾们,来帮小虾我吧!
...全文
519 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
involute 2002-04-01
  • 打赏
  • 举报
回复
CString::GetBuff(0)
星辰游侠 2002-03-31
  • 打赏
  • 举报
回复
CString::GetBufferLPTSTR GetBuffer( int nMinBufLength );
throw( CMemoryException );返回值一个指向对象的(以空字符结尾的)字符缓冲区的LPTSTR指针。参数nMinBufLength 字符缓冲区的以字符数表示的最小容量。这个值不包括一个结尾的空字符的空间。说明此成员函数返回一个指向CString对象的内部字符缓冲区的指针。返回的LPTSTR不是const,因此可以允许直接修改CString的内容。如果你使用由GetBuffer返回的指针来改变字符串的内容,你必须在使用其它的CString成员函数之前调用ReleaseBuffer函数。在调用ReleaseBuffer之后,由GetBuffer返回的地址也许就无效了,因为其它的CString操作可能会导致CString缓冲区被重新分配。如果你没有改变此CString的长度,则缓冲区不会被重新分配。当此CString对象被销毁时,其缓冲区内存将被自动释放。注意,如果你自己知道字符串的长度,则你不应该添加结尾的空字符。但是,当你用ReleaseBuffer来释放该缓冲区时,你必须指定最后的字符串长度。如果你添加了结尾的空字符,你应该给ReleaseBuffer的长度参数传递-1,ReleaseBuffer将对该缓冲区执行strlen来确定它的长度。
示例下面的例子说明了如何用CString::GetBuffer。
// CString::GetBuffer例子
CString s( "abcd" );
#ifdef _DEBUGafxDump << "CString s " << s << "\n";
#endifLPTSTR p = s.GetBuffer( 10 );strcpy( p, "Hello" );
// 直接访问CString对象。
s.ReleaseBuffer( );
#ifdef _DEBUGafxDump << "CString s " << s << "\n";
#endif
Kusk 2002-03-31
  • 打赏
  • 举报
回复
什么意思?*不管用?
mryinliang 2002-03-31
  • 打赏
  • 举报
回复
用GetBuffer函数

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧