如何以文件名的方式打开内存中的文件

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:56:36
我在vc++中使用了flash控件,它有个SetMovie(LPCTSTR lpszNewValue)函数,参数为要打开的文件路径,现在我把flash文件当作资源加进了exe,因为单个文件就不怕发给别人后flash文件被不小心删了.使用的时候我是用CreateFile和WriteFile来创建文件的,我想知道有没有方法不用创建文件而直接以文件名引用内存中的文件,没有就算了,谢谢!
PS:
谢谢大家的回答,没想到那么快就有人回答这个问题了.
使用CMemFile时我就有一点不明白:
创建了该对象之后,在我要使用的时候应该怎么用?
如SetMovie(LPCTSTR lpszNewValue),这里的参数应该写什么呢,不可能是写上CMemFile的实例名吧?

flash控件似乎没有提供这样的接口,只能写到文件里,再调用SetMovie

=========================================

只说一下方法吧,看你对mfc挺熟的,具体参数和用法你自己查msdn(里面有例子程序)
先用FindResource取得一个资源的句柄,再用LoadResource加载,然后用LockResource锁定,LockResource返回值就是你加载的资源在内存中的地址,你可以用它来初始化一个CMemFile

对了,取得一个资源的大小,用SizeofResource,创建CMemFile时用到。

这个函数如果只支持文件名的话,必须保存出来。
如果有支持流(IStream)的函数,就可以从内存直接调。

没见过,不过用1L的方法就行了 我以前试过