传奇SF SF传奇 英雄合击 传奇发布网 蜀门私服 传奇SF 英雄合击 SF传奇 传奇SF SF传奇 英雄合击 冬虫夏草
English Sentence Loading...
英语句子加载中...

如何用UpdateResource替换位图资源(VB6.0)

论坛里有朋友问了这个问题:   http://www.m5home.com/bbs/thread-3528-1-1.html

就是使用UpdateResource函数更新资源后,VB6提示"无效图片"的问题.

我检查了代码中API的返回值,貌似都是对的,而更改后,EXE内的资源确实也改变了,但是就算是使用eXeScope去打开这个被替换的资源,也提示是"无效的位图".

真是怪了.....

于是再用eXeScope打开一个正常资源的EXE看了一下,将其中的资源以二进制格式查看,再对比资源的原图片的二进制内容,发现EXE中资源少了14个字节........该不会是........

赶紧把BITMAP文件头翻出来一看,果然:

Private Type BITMAPFILEHEADER
    bfType As Integer      '2字节
    bfSize As Long           '4字节
    bfReserved1 As Integer
    bfReserved2 As Integer
    bfOffBits As Long
End Type

这是BITMAP文件头结构,就是14个字节,汗.

于是把代码中UpdateResource一段更改了一下,减去了文件头,再运行目标EXE,就正常了....

但是其中具体原因没有深入,因为看着MSDN中那些英文,我那头不是一点半点的疼....

不过呢,问题算是治了标了,哈哈哈哈哈哈.......

[本日志由 admin 于 2010-02-08 02:01 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: VB6 API UpdateResource
相关日志:
评论: 0 | 引用: 0 | 查看次数: 569
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭