资源加载操作_FindResource_LoadResource_LockResource


FindResource是一个计算机函数。该函数确定指定模块中指定类型和名称的资源所在位置。
参数
编辑
hModule:处理包含资源的可执行文件的模块。NULL值则指定模块句柄指向操作系统通常情况下创建最近过程的相关位图文件。
lpName:指定资源名称。若想了解更多的信息,请参见注意部分。
lpType:指定资源类型。若想了解更多的信息,请参见注意部分。作为标准资源类型。这个参数的含义同EnumResLangProc\lpType。
返回值:如果函数运行成功,那么返回值为指向被指定资源信息块的句柄。为了获得这些资源,将这个句柄传递给LoadResource函数。
如果函数运行失败,则返回值为NULL。若想获得更多错误信息,请调用GetLastError函数。
HRSRC       hrFile       =       FindResource(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_EXE1), "EXE ");    
 //返回指向被指定资源信息块的句柄  

LoadResource
LoadResource,计算机用语。意思是装载指定资源到全局存储器。
函数功能:该函数装载指定资源到全局存储器。
函数原型; HGLOBAL LoadResource(HMODULE hModule,HRSRC hReslnfo);
参数:
hModule:处理包合资源的可执行文件的模块句柄。若hModule为NULL,系统从当前过程中的模块中装载资源。
hReslnfo:将被装载资源的句柄。它必须由函数FindResource或FindResourceEx创建。
返回值:如果函数运行成功,返回值是相关资源的数据的句柄。如果函数运行失败,返回值为NULL。若想获得更多的错误信息,请调用GetLastError函数。
注意:LoadResource的返回类型是向后兼容的HGLOBAL型,而不是因为函数返回一个全局存储块句柄。不要传递这个句柄给函数GlobalLock或GlobalFree。
为了得到更多资源数据信息,请调用LockResource函数。
当使用完资源后,必须通过调用函数以释放加速器表、位图、光标、图标以及菜单所占的内存资源:加速器表:DestroyAcceleratorTable;
位图:DeleteObject;光标:DestroyCursor;图标:Destroylcon;菜单:DestroyMenu。
当过程创建终止时,系统将自动删除这些资源。但是调用相关函数也可以保留内存减少过程的工作设置所占空间。
HGLOBAL       hgFile       =       LoadResource(AfxGetInstanceHandle(),hrFile);   
返回相关资源的数据的句柄

LockResource
LockResource是指锁定资源并得到资源在内存中的第一个字节的指针。
函数功能
编辑
该函数锁定内存中的指定资源,说白了就是返回资源在内存中的地址,不须解锁操作。
简介
编辑
函数原型:LPVOID LockResource(HGLOBAL hResData);
参数:
hResDate:被装载的资源的句柄。函数LoadResource可以返回这个句柄。
返回值:如果被装载的资源被锁住了,返回值是资源第一个字节的指针;否则为NULL。
注意:通过使用函数FindResource或FindResourceEx返回句柄试图锁住资源,不再工作。可以返回一个错误的数据和任意数据的指针。
当使用完资源后,必须通过调用函数以释放加速器表、位图、光标、目标以及某单所占的内存资源:加速器表:DestroyAcceleratorTable;
位图:DeleteObject;光标:DestroyCursor;图标:Destroylcon;菜单:DestroyMenu。
当过程创建终止时,系统将自动删除这些资源。但是调用相关函数也可以保留内存减少过程的工作设置所占空间。
速查:Windows NT 3.1、Windows 95、Windows CE 1.0以上,头文件:winbase.h;库文件:kerne132.lib。
返回是资源第一个字节的指针  (内存地址)

SizeofResource
SizeofResource表示该函数返回指定资源的字节数大小。
函数功能:该函数返回指定资源字节数大小。
函数原型:DWORD SizeofResource(HMODULE hModule,HRSRC hReslnfo);
参数:
hModule:包合资源的可执行文件模块的句柄。
hReslnfo:资源句柄。此句柄必须由函数FindResource或FindResourceEx来创建。
返回值:如果函数运行成功,返回值资源的字节数。如果函数运行失败,返回值为零。若想获得更多的错误信息,请调用GetLastError函数。
速查:Windows NT 3.1、Windows 95、Windows CE 1.0以上,头文件:winbase.h;库文件:kerne132.lib。
返回资源大小

HANDLE       hfFile       =       CreateFile( "C://amn.exe ",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);       
DWORD       nFileLength       =       SizeofResource(AfxGetInstanceHandle(),hrFile);       
DWORD       nWriteLength;       
WriteFile(hfFile,pvFile,nFileLength,&nWriteLength,NULL);       
CloseHandle(hfFile);       
FreeResource(hrFile);   

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值