name.GetBuffer() 还是输出地址,不是字符
时间: 2024-02-19 15:58:47 浏览: 76
微软笔试题.docx
非常抱歉,我的回答还是有误。当使用GetBuffer()方法时,需要在输出CString对象的字符数组前调用ReleaseBuffer()方法来释放缓冲区。这是因为GetBuffer()方法返回的是指向CString对象内部缓冲区的指针,而ReleaseBuffer()方法用于通知CString对象使用缓冲区。因此,正确的代码应该是:
```
CString name = pRecordset->GetCollect("Name");
int age = pRecordset->GetCollect("Age");
out << name.GetBuffer() << "\t" << age << endl;
name.ReleaseBuffer();
```
这里使用了GetBuffer()方法来获取CString对象中的字符数组,然后输出。最后调用了ReleaseBuffer()方法来通知CString对象使用缓冲区,防止内存泄漏。再次感谢您指出我的错误。
阅读全文