如何编辑和写入VB6资源文件,例如图片,文本供工程进行调用

最近整了下VB项目,修改了下UI。和C# Qt不一样,VB资源文件内的图标需要重新用命令行和工具重新写入,供工程通过LoadResData方法调用

bImg = LoadResData("IMAGE1", "CUSTOM")

资源.res文件创建/修改方法。

1. 先将所有图片防止到工程目录下;

2. 编写.rc文件,将路径写入如下:

1      		24    	MOVEABLE        PRELOAD         asAdmin.manifest
APPICON      	ICON    MOVEABLE        PRELOAD         app.ico
IMAGE1      	CUSTOM    MOVEABLE        PRELOAD         1.png
IMAGE2      	CUSTOM    MOVEABLE        PRELOAD         2.png
IMAGE3      	CUSTOM    MOVEABLE        PRELOAD         3.png
IMAGE4      	CUSTOM    MOVEABLE        PRELOAD         banner.png
IMAGE5      	CUSTOM    MOVEABLE        PRELOAD         5.png

3. 找到visual basic安装目录下的包含RC.EXE文件的Wizards目录,

D:\Program Files (x86)\Microsoft Visual Studio\VB98

4. 右键Wizards目录,选择“在此处打开命令行窗口”,在新弹出窗口下输入以下命令

D:\Program Files<x86>\Microsoft Visual Studio\VB98\Wizards>rc /r <你的.rc文件路径>

此时,会生成新的.res文件,你的图片就会被打包到这个.res资源文件中,供你VB工程调用。

注意,打包的时候ico必须是256色,否则会出现以下错误。可以用这个网站https://www.icoconverter.com/将png或者jpg图片进行转换。

error RC2176 : old DIB in res/AES.ico; pass it through SDKPAINT

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
'这是从资源文件调用msvbvm60.dll 注册的代码 '本代码是放在模块 Moudule1.bas 里面,不是放在Form1里面的. '要注册.dll .ocx最好是放在.bas里面,并把启动项设为Sub Main '否则有可能在还没进入窗体执行注册的动作前,就产生错误而中断了 '尤其是98系统之下的msvbvm60.dll '先建立一个资源文件, 在 Custom 101 装载 msvbvm60.dll Global winsys$, appdisk$, aa$ Sub Main() On Error Resume Next If App.PrevInstance Then MsgBox "本系统已运行中, 不得重复加载!!", vbOKOnly, "菜鸟多媒体桌面工具": End appdisk = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\") winsys = GetSyspath Call regdllocx Form1.Show End Sub Private Sub regdllocx() On Error Resume Next Dim byt() As Byte aa = winsys & "msvbvm60.dll" If Dir(aa) = "" Then byt = LoadResData(101, "CUSTOM") Open aa For Binary As #1 Put #1, 1, byt() Close #1 End If If Dir(aa) <> "" Then aa = "Regsvr32 /s " & aa Call Shell(aa, vbHide) End If End Sub Public Function GetSyspath() As String '获取system32路径 aa = Trim(Environ("ComSpec")) GetSyspath = Mid(aa, 1, InStrRev(aa, "\")) End Function '直接从资源文件调用 .bmp图片(只允许.bmp),不必释放到硬盘 'Me.Icon = LoadResPicture(101, vbResIcon) '注释:加载图标 'Picture1.Picture = LoadResPicture(101, vbResBitmap) '注释:加载位图 'Command1.MouseIcon = LoadResPicture(101, vbResCursor) '注释:加载光标' '播放 WAVE 声音(只允许.wav) Option Explicit Private Declare Function sndPlaySoundFromMemory Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long Const SND_ASYNC = &H1 Const SND_MEMORY = &H4 Private Sub Command1_Click() Dim bArr() As Byte bArr = LoadResData(101, "CUSTOM") DoEvents sndPlaySoundFromMemory bArr(0), SND_ASYNC Or SND_MEMORY End Sub 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cbm666/archive/2008/03/08/2158287.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值