如何用IStream传递一个较大的文件?如何Mashaling该stream?

romijn 2003-03-11 10:35:49
在客户和DCom服务器中间传送文件,以前我是用VARIANT包装了SAFEARRAY来传递数据的,但是对于大文件13M左右,读很快几秒钟即可,但是写很慢,要1分钟左右。
ReadData([out] VARIANT *pBuf);//从DCom读数据,传到前端,很快13M要几秒钟
WriteData([in]VARIANT *pBuf);//前端上传数据到DCom,很慢要13M要1分钟
不知道是为什么,同样的要传递13M,只是[in]、[out]的区别,发现WriteData大部分的时间都耗费在参数的传递上了。
经网友的提示到国外网站上看看,发现很多人都遇到了这个问题,都说要用IStream传递。但是要把IStream列集和散集才行,我不知道怎么做?有人试过吗?
DCom服务器利用IStream的函数如下:
WriteStreamFile1(IStream *pITransferStream, BSTR psFileName, BSTR psCheckStr, int piSize);
利用IStream的几个函数(stat和read)做测试,发现IStream流不能够把数据传送过去,据说是要列集和散集,有人做过吗?在客户端,已经测试过IStream的读写,都没有问题。
困惑中......
...全文
14 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
romijn 2003-03-13
真的没有人知道吗
回复
romijn 2003-03-12
国外上传大文件都是用这种方式的!!
回复
romijn 2003-03-12
请求DCom的高手指点
回复
相关推荐
发帖
ATL
创建于2007-09-28

3214

社区成员

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
申请成为版主
帖子事件
创建了帖子
2003-03-11 10:35
社区公告
暂无公告