IStream 流如何保存为文本文件?

lovev8 2007-02-16 11:49:12
它本身好象没有方法可实现?
...全文
612 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ATField 2007-02-16
  • 打赏
  • 举报
回复
既然是图片文件,那么自然是二进制了。
IStream::Read用法如下:
HRESULT Read(
void* pv,
ULONG cb,
ULONG* pcbRead
);
Parameters
pv
[out] Pointer to the buffer into which the stream data is read. If an error occurs, this value is NULL.
cb
[in] Number of bytes of data to attempt to read from the stream object.
pcbRead
[out] Pointer to a ULONG variable that receives the actual number of bytes read from the stream object.
You can set this pointer to NULL to indicate that you are not interested in this value. In this case, this method does not provide the actual number of bytes read.

lovev8 2007-02-16
  • 打赏
  • 举报
回复
IStream->Read 如何用?
lovev8 2007-02-16
  • 打赏
  • 举报
回复
我是从CFile读取的图片文件,然后用CFile.Read(m_pStreamData, (UINT)iFileSize)将文件数据读入到IStream中,不知道这时候IStream里的数据是文本还是二进制格式?
ATField 2007-02-16
  • 打赏
  • 举报
回复
可以调用IStream->Read方法读取IStream中的数据,然后写到文本文件中。
不过有个问题,为什么要写到文本文件中?IStream中可能是二进制数据,直接写到文件里面文件就不是文本了。如果一定要保存为文本,可以将Istream->Read返回的二进制数据用Base64编码成ASCII字符,然后再写到文本文件中。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧