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

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

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

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

分不够可以加。。。。麻烦大家讨论一下
...全文
217 点赞 收藏 18
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lisunlin0 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类,现成的拷贝过来就可以用了
回复
lisunlin0 2008-09-06
我以前写过一段可以播放内存中swf文件的代码,主要是Hook了当前进程内文件操作相关的Api,楼主把代码改一改,应该可以满足要求的。
无临时文件播放内存中的Flash(*.swf)文件 http://blog.csdn.net/lisunlin0/archive/2007/07/17/1695068.aspx
回复
从你的需求来看,内存虚拟文件没有办法帮你,你需要一个驱动程序,将一块内存虚拟成一个磁盘,就相当于系统中多了一个磁盘分区。

不过,简单来讲,如过swf文件不大,存在磁盘上并不需要太长时间,100K-500K左右的文件都是秒级完成的
回复
scq2099yt 2008-09-06
up
回复
hktl 2008-09-06
lisunlin0
你是hook本进程?
回复
shanying_0 2008-09-06
路过学习
回复
lisunlin0 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核心编程中 创建内存映射文件的做法
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-09-05 08:30
社区公告

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