CString:: GetBuffer后要release
来源:互联网 发布:linux 压缩多个文件 编辑:程序博客网 时间:2024/06/07 00:23
程序需要读一个数据文件, 居然有点问题。
int readFileByBinary(){CString currentDirectory;GetCurrentDirectory(1000, currentDirectory.GetBuffer(1000));cout << currentDirectory << endl;ifstream ifstr;//currentDirectory.Replace("\\", "\\\\");//currentDirectory.ReleaseBuffer();CString tempDirect = currentDirectory + "\\test.txt";currentDirectory += "\\test.txt";cout << currentDirectory << endl;ifstr.open(currentDirectory.GetBuffer(), ios::in);if(!ifstr.is_open()){cout << "No files" << endl;return 0;}string line;char lineLC[255];while(!ifstr.eof()){ifstr >> line;cout << line << endl;}return 1;}
总是打不开文件, 输出文件路径发现后续的 test.txt并没有增加到原先字符串的末尾。开始时怀疑是不是使用了getbuffer导致长度固定,于是定义新的
tempDirectory = currentDirectory发现还是连接不上后续字符串。
查找MSDN,在getbuffer说明里面有这样一段话
If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CString member functions. The address returned by GetBuffer may not be valid after the call to ReleaseBuffer since additional CString operations may cause the CString buffer to be reallocated. The buffer will not be reallocated if you do not change the length of the CString.就是说如果使用getbuffer为cstring变量分配的空间,那么对这个变量使用其他操作以前必须releasebuffer.后面说了原因,如果不release是不会重新分配空间的。
加上releasebuffer一句后,顺利解决。
0 0
- CString:: GetBuffer后要release
- CString GetBuffer()
- CString GetBuffer用法,GetBuffer本质,GetBuffer常见问题
- CString to TCHAR* ReleaseBuffer后指向GetBuffer的指针无意义
- GetBuffer and Release buffer
- CString GetBuffer() and ReleaseBuffer()
- CString GetBuffer()详解
- CString GetBuffer() and ReleaseBuffer()
- Getbuffer ReleaseBuffer Cstring
- CString 的 GetBuffer
- CString 的GetBuffer函数
- CString的GetBuffer
- CString的GetBuffer用法
- CString的GetBuffer用法
- 转:CString 的 GetBuffer
- CString 的 GetBuffer
- CString的GetBuffer用法
- Getbuffer ReleaseBuffer Cstring
- JAVA——线程
- 解决"Duplicate IP address detected for *******"的问题
- java post带文件HTTP
- 1500个前端开发常用JavaScript特效
- 蓝桥杯 黄金连分数 模拟除法
- CString:: GetBuffer后要release
- 通过文件流将很多图片存入SD卡
- sap alv转换(导出excel部分字段显示不正确)
- Android向sd卡写文件出现的问题
- AES加密/解密算法
- Pro Android学习笔记(一五八):联系人API(1):账号
- Maven的发布plugin配置
- 安装部署OSQA
- html5中页面拨打电话发短信