最近用使开发的过程中出现了一个小问题,顺便记录一下原因和方法--资源添加
把资源转化成dll,的目是为了不让别人容易的失掉资源,是一种护保资源的一种方法。
创立DLL
1.创立DLL项目ResVideo:新建win32项目,选择 DLL,成完。
2.添加资源件文ResVideo.rc,
在resource.h件文中添加资源宏:
#define IDR_SWF_TEST 600 #define IDR_SWF_CHUNTIAN 601 #define IDR_SWF_FEIJI 602 #define IDR_SWF_HUOJIAN 603 #define IDR_SWF_SHENGLI 604 #define IDR_SWF_SHIBAI 605 #define IDR_SWF_SHUNZHI 606 #define IDR_SWF_ZHADAN 607
在ResVideo.rc件文中添加资源:其路径要存在
IDR_SWF_TEST SWF "ResVideo\\test.swf" IDR_SWF_CHUNTIAN SWF "ResVideo\\天春.swf" IDR_SWF_FEIJI SWF "ResVideo\\飞机.swf" IDR_SWF_HUOJIAN SWF "ResVideo\\火箭.swf" IDR_SWF_SHENGLI SWF "ResVideo\\成功.swf" IDR_SWF_SHIBAI SWF "ResVideo\\失败.swf" IDR_SWF_SHUNZHI SWF "ResVideo\\顺子.swf" IDR_SWF_ZHADAN SWF "ResVideo\\炸弹.swf"
用使DLL
1.添加包括头件文:#include "../ResVideo/resource.h"
2.要主数函:
void LoadSWF(int resourceID) { HMODULE hModule = LoadLibrary(L"ResVideo.dll");//意注其路径 if (hModule == NULL) { return; } HRSRC res=FindResource(hModule,MAKEINTRESOURCE(resourceID),L"SWF"); HGLOBAL gl=LoadResource(hModule,res); LPVOID lp=LockResource(gl); if (res == NULL || gl == NULL || lp == NULL) { return; } char* fileName="C:\\Windows\\System32\\temp.swf"; HANDLE fp=CreateFileA(fileName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL); if (fp == INVALID_HANDLE_VALUE) { return ; } DWORD size=0; if (!WriteFile(fp,lp,SizeofResource(hModule,res),&size,NULL)) { return ; } CloseHandle(fp); FreeResource(gl); }
3.以资源宏为参数来用使资源。
参考 VC中利用FLASH制作图声并茂的动画序程
文章结束给大家分享下程序员的一些笑话语录:
腾讯的动作好快,2010年3月5日19时28分58秒,QQ同时在线人数1亿!刚刚看到编辑发布的文章,相差才2分钟,然后连专题页面都做出来了,他们早就预料到了吧?(其实,每人赠送10Q币,轻轻松松上两亿!)