[Win32]纯资源DLL

将资源转化为DLL保护资源
本文详细介绍了如何通过创建DLL项目来封装资源,并提供了一步一步的指导,包括添加资源文件、宏定义以及如何在DLL中加载和使用这些资源。这种方法可以有效地防止资源被轻易获取。

把资源转化成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制作图声并茂的动画程序


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值