[VB]枚举 PE 文件里面的资源

今天继续研究了关于资源操作的API函数,研究的是枚举文件资源的三个API:EnumResourceNames 、EnumResourceTypes和EnumResourceLanguages。这几个函数都非常的相似,作用分别是枚举资源的名称、类型和语言。

 

EnumResourceNames的第一个参数是要枚举资源的模块的句柄,一般可以用LoadLibrary来获得,不过使用后记得要用FreeLibrary来释放句柄,如果这个句柄传入值是0的话就相当于传入了App.hInstance,即当前进程的模块句柄。

第二个参数是要枚举的资源的类型标识,可以是RT_开头的API常数,废话多说一个,RT=Resource Type。。。。

第三个参数是回调函数的指针,可以用“AddressOf 函数名”获取,函数格式上面有要求,必须要是下面这样的格式:

Function EnumNamesFunc(ByVal hModule As Long, ByVal lpType As Long, ByVal lpName As Long, ByVal lParam As Long) As Boolean
第一二个参数不用说了,和EnumResourceNames传入的值一样,第三个参数可以是一个表示资源名称的指向字符串的指针,也可以是表示一个资源ID的数值,可以这样来判断类型(API-GUIDE里面给出的例子):

Dim ResName As String, LenOfRN As Long
If (lpName > &HFFFF&) Or (lpName < 0) Then '为字符串指针
    LenOfRN = lStrLen(lpName): ResName = Space$(LenOfRN)
    CopyMemory ByVal ResName, ByVal lpName, LenOfRN

Else '类型为数值
End If
另外也可以用一个以“#”开头的字符串来代替数值ID,比如“#234”就代表数值ID为234的资源。

最后一个参数lParam是用户自己定义的附加信息,就是EnumResourceNames传入的最后一个参数了,我一般都传个hUpdate进去的,以便更新资源。

 

其他的两个API都是大同小异的,就不多废话了,大家看看源码的示例吧~~~~谢谢收看~~~~~

下载地址:http://download.csdn.net/source/567729

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值