回 帖 发 新 帖 刷新版面

主题:向INI中取的字符串不能截取

我向INI文件中获取一个变量,放在strTime中,假设读出来是值是“12:34:56”,然后我用strTime=strTime.Left(2);为什么我这样做之后,显示出来还是12:34:56。具体代码如下:

GetPrivateProfileString("RingTime","ring01","DEFAULT VALUE",strTime.GetBuffer(MAX_PATH),MAX_PATH,"res\\ring.ini"); 
   strTime=strTime.Left(2);
附说明:
  如果不是从INI中取出的字符串,做LFET(2)后,显示为“12”,表示我系统应该没问题

回复列表 (共1个回复)

沙发


原因是我进行  strTime.GetBuffer(MAX_PATH)  操作后,必须进行 strTime.ReleaseBuffer()后,才能运用CString的各种方法。
参照MSDN:

Call this method to reallocate or free up the buffer of the string object. If you know that the string in the buffer is null terminated, you can omit the nNewLength argument. If your string is not null terminated, use nNewLength to specify its length. The address returned by GetBuffer is invalid after the call to ReleaseBuffer or any other CSimpleStringT operation

我来回复

您尚未登录,请登录后再回复。点此登录或注册