登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

独一飞的博客

我的梦想还在远方

 
 
 

日志

 
 

CString::GetString()与CString::GetBuffer()[转]  

2008-12-02 10:10:37|  分类: 应用程序类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
CString中提供两个成员函数让我们可以取得其字符串的指针
一個是GetString() 另一個是GetBuffer()
CString::GetString()
GetString() 使用時機是當我們需要知道其(char *)指標以取得其字元內容
比方說 某個window API需要(char*)指標做為輸入時 我們就可以使用GetString()
不過要注意的是 GetString() 所傳出來的指標是不能被修改的
他只能用來讓我們知道裡面的字元 而不能讓我們對裡面做修改


CString::GetBuffer()
如果常看小弟網誌的人 應該都常看到 GetBuffer()  的使用
GetBuffer() 他會create出所指定大小的空間出來 這個空間是可以讓我們修改的
很多時候 有的 API 會要一個(char*)的指標作為輸出
如果我們就因為這樣去產生一個(char*)的buffer 給他 等到資料取出來之後
便無法使用CString 的種種方便功能
因此 比較好的做法 便是用GetBuffer()來產生一個buffer空間給他
等到取出來之後 我們便可以直接使用CString來對他操作
GetBuffer() 使用完後 最好是呼叫一下ReleaseBuffer()做為結束

雖然小弟的網誌之前已經有很多GetBuffer()的使用了 不過還是附個範例
CFile file;
// FILE_NAME 為事先定義好的檔案名稱
if
(file.Open(FILE_NAME,CFile::modeRead))
{
  CString szContent;
  int nFileLength = file.GetLength();
  file.Read(szContent.GetBuffer(nFileLength),nFileLength);
  szContent.ReleaseBuffer();
// 取得檔案內容放在szContent中 我們之後可以對其操作
}
  评论这张
 
阅读(5360)| 评论(6)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018