vc 怎么才能在程序运行时把自身的资源复制出来?

来源:百度知道 编辑:UC知道 时间:2024/06/06 21:02:01

hi的传说 不知道你所说的是什么资源啊
-----------------下面是一个swf文件内嵌在程序中,动态释放的例子
在使用SWF资源前首先要将其动态从应用程式中释放到文档中才可对资源做进一步的使用。可先通过宏MAKEINTRESOURCE()将资源标识号IDR_SWF转换成字符串Name,再分别通过FindResource()、LoadResource()函数查找、装载该资源到内存:

CString Type="swf";
HRSRC res=FindResource (NULL,Name,Type);
HGLOBAL gl=LoadResource (NULL,res);

当资源加载到内存后,还要通过对资源内存的锁定来返回指向资源内存的地址的指针,并籍此实现资源从内存到磁盘的保存,至于存盘的操作则由文档函数CreateFile()、和WriteFile()来完成:

LPVOID lp=LockResource(gl); //返回指向资源内存的地址的指针。
CString filename="Temp.swf"; //保存的临时文档名
// CREATE_ALWAYS为不管文档存不存在都产生新文档。
fp= CreateFile(filename ,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
DWORD a;
//sizeofResource 得到资源文档的大小
if (!WriteFile (fp,lp,SizeofResource (NULL,res),&a,NULL))
return false;
CloseHandle (fp); //关闭句柄
FreeResource (gl); //释放内存

文件,打开,选你要的资源,就是.rc格式的,这样你就能打开资源了

根本不可能,windows系统不支持。什么时候运行一个程序,然后复制这个程序文件,都是行不通的。不是VC的问题,是windows系统根本不允许你这样做。