IStream的Write和Seek函数

在编写rtp协议发送并接受显示jpeg文件的过程中,遇到了这一问题 ,详述如下。

由于需要将接收到的Buffer中的BYTE数据直接转换成IStream类型进行显示(省去中间存储为文件有读出的过程),我调用了ISteam的Write函数把buffer中的数据写入IStream中,其后直接调用m_pict.Load(pStm);进行显示,结果ASSERT错误,Google了一下,发现一篇文章中提到IStream在调用Write之后,其指针已经转移到stream的尾部了,所以我需要把指针重新指向stream的顶部,方法是在Write之后,显示图片之前,加上下面三行代码:

 ULARGE_INTEGER   pSeek;  

 LARGE_INTEGER    dlibMove = {0}  ;  

 pStm->Seek(dlibMove,STREAM_SEEK_SET  ,&pSeek); 

这样指针便重新回到stream顶部。单纯地保留write之前的指针,在write之后再重新赋值给pStm是行不通的。具体原因,有空分析一下。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值