!!讨论!!如何在内存里虚拟一个文件!!

hktl 2008-09-05 08:30:46
如题
我的EXE里面的资源有一个SWF的播放器和一些SWF文件,
我想让EXE的SWF控件去读一个SWF的播放器,
这个SWF的播放器还会去读其他的SWF文件。

但我不想把全部的文件解到磁盘上,那要花很多时间。
能不能在内存里虚拟这些文件。
命名管道的方法我试过
系统是支持,但swf本身就支持这种方法。
还有其他方法吗?

我试过虚拟http服务器,但这样一般的系统会出现访问网络的警告。
勾子应该也可以实现,还没试过。

分不够可以加。。。。麻烦大家讨论一下
...全文
265 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunlin7 2008-09-07
  • 打赏
  • 举报
回复
是的,那个代码只是进程内部的hook,不是系统级的。
你直接在自己的程序里面用flash控件或webbrowser控件播放flash文件,或者自己利用flash控件写一个简单的flash播放器,在该播放器里面播放目标swf文件不就行了?
hktl 2008-09-06
  • 打赏
  • 举报
回复
to orbit
文件是不大。但很少。有几百M。
每次打开都解出来,要花的时间好久
hktl 2008-09-06
  • 打赏
  • 举报
回复
lisunlin0
如果我是用CHtmlView加载一个网页,在页面里面显示FLASH,
不知这样能不能HOOK到。不是直接用FLASH的插件
hktl 2008-09-06
  • 打赏
  • 举报
回复
内存映射文件应该是解决不了的
我知道APIHOOK是可以实现,只是实现的代码会比较多
谢谢lisunlin0


谢谢ok1234567

我找找看
yccwt 2008-09-06
  • 打赏
  • 举报
回复
学习,帮顶!
qaz2008 2008-09-06
  • 打赏
  • 举报
回复
up
ok1234567 2008-09-06
  • 打赏
  • 举报
回复
其实现的是CxMemFile :)
ok1234567 2008-09-06
  • 打赏
  • 举报
回复
去下载一套 CxImage的源代码,其中有一个 CxFile类,现成的拷贝过来就可以用了
sunlin7 2008-09-06
  • 打赏
  • 举报
回复
我以前写过一段可以播放内存中swf文件的代码,主要是Hook了当前进程内文件操作相关的Api,楼主把代码改一改,应该可以满足要求的。
无临时文件播放内存中的Flash(*.swf)文件 http://blog.csdn.net/lisunlin0/archive/2007/07/17/1695068.aspx
吹泡泡的小猫 2008-09-06
  • 打赏
  • 举报
回复
从你的需求来看,内存虚拟文件没有办法帮你,你需要一个驱动程序,将一块内存虚拟成一个磁盘,就相当于系统中多了一个磁盘分区。

不过,简单来讲,如过swf文件不大,存在磁盘上并不需要太长时间,100K-500K左右的文件都是秒级完成的
scq2099yt 2008-09-06
  • 打赏
  • 举报
回复
up
hktl 2008-09-06
  • 打赏
  • 举报
回复
lisunlin0
你是hook本进程?
shanying_0 2008-09-06
  • 打赏
  • 举报
回复
路过学习
sunlin7 2008-09-06
  • 打赏
  • 举报
回复
你在处理swf文件路径里用file:////c://my.swf,应该没有什么问题的。
deryker 2008-09-06
  • 打赏
  • 举报
回复
up
cnzdgs 2008-09-05
  • 打赏
  • 举报
回复
如果要虚拟文件,可以用API Hook的方式,Hook播放器进程的CreateFile、ReadFile、CloseHandle等。
jameshooo 2008-09-05
  • 打赏
  • 举报
回复
不知道swf控件是否支持IPersistStreamInit或IPersistStream接口,如果支持就好办。你可以QueryInterface试试看
pangqi022 2008-09-05
  • 打赏
  • 举报
回复
看样子你的需求是可以用内存映射文件解决
如果想了解内存映射文件的用法可以去参考windows核心编程中 创建内存映射文件的做法

16,472

社区成员

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

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

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