有没有办法在不写入实际文件的情况下将 CString 发送到 CFile?

Ale*_*lex 1 c++ mfc visual-studio

我有数据存储在 a 中CString,它需要由 XML 解析器库解析。问题是 XML 解析器接受一个CFile. 将 写出CString到文本文件然后将其重新加载到CFile. 有什么方法可以直接发送CStringCFile而不制作中间输出文件?

fla*_*shk 5

您应该能够使用CMemFile来完成此操作。它继承自CFile并允许您为数据指定任意缓冲区。以下示例代码应该可以工作:

CString strData;
CMemFile memFile( (BYTE*)strData.GetBuffer() , (strData.GetLength() + 1) * sizeof(TCHAR) );

//Do something with memFile

strData.ReleaseBuffer();
Run Code Online (Sandbox Code Playgroud)