怎么使用 vb 打开 res 文件
注:回答必须写下每一个步骤,我vb完全不会,现在下了一个vb 6.0 企业版。
我看到的步骤只到这里,外接程序--外接程序管理器--vb资源编辑器(加载),
但是我还是不知道该怎么打开。 展开
VB6.0打开或编辑.res文件需要先加载外部程序管理器,然后选取VB 6 资源管理器加载和运行。
Visual Basic 把具有 .res 扩展名的文件识别为资源文件。如果资源文件不具有正确的扩展名,Visual Basic
将不会加载它。相反地,任何具有 .res 扩展名的文件被加入到工程时都会被 Visual Basic
当作资源文件处理,如果该文件不具有标准的资源文件格式,Visual Basic
将在第一次使用资源文件支持函数(LoadResString、LoadResPicture 和 LoadResData)或试图编译成 .exe
文件时产生错误信息。试图添加 16 位的资源文件到工程中也会产生同样的错误信息。资源文件被添加到工程后,.res
文件将出现在“工程”窗口中。与窗体或模块不同,在 Visual Basic 中不能查看 .res 文件。该文件是标准的资源文件,可由
Microsoft Visual C++ 和其它大部分的 Windows 开发工具创建或使用。一旦在“文件”菜单中选中“生成 projectname.exe”一项,Visual Basic
将把该文件中的所有资源编译到 .exe 文件中作为 Windows 的资源。要编辑资源文件,请按照以下步骤执行:
从“工具”菜单中选择“资源编辑器”。
注意 该命令仅在资源编辑器外接程序加载的情况下才能使用。要加载资源编辑器外接程序,请从“外接程序”菜单中选择“外接程序管理器”。在“外接程序管理器”对话框中,选择“VB6
资源编辑器”并复选“加载/卸载”框。从“资源编辑器工具栏”中选择一个按钮来编辑一个现存资源文件或添加一个新的。有关编辑资源文件的更详细信息,请参阅资源编辑器外接程序文档。
了解了,代码就容易了...
下面介绍下我以前练习时写的代码:
首先,建立一个RES资源文件,我在里面保存了一个swf文件,这个文件在RES里的位置是“101”,类型为“CUSTOM”。
在窗体上添加了个Command控件和SWF控件。
下面的是在标准模块里定义的函数
'读取RES资源文件
'为了提高函数的通用性,所以函数有点复杂
Public Function ReadRes(Fname() As String, Fpath() As String, Ftype() As String, Point() As Integer) As Integer
'数组Fname()保存了RES文件里文件的文件名,也说明了RES里面有什么文件(RES里面不一定是文件)
'数组Fname()下标从1开始
'数组Fpath()保存了数组Fname()对应的要保存的路径
'数组Fpath()下标从1开始
'数组Ftype()保存了RES文件里面各个资源的RES类型,一般为"CUSTOM"
'数组Ftype()下标从1开始
'数组Point()是二维数据
'Point(1,*)保存了Fname()里的位置,第一个文件位置是1,第二个文件位置就是2,...;
'Point(2,*)保存了要读取的文件位置,第一个文件位置是101,第二个文件位置就是102,...
'数组Point()下标从1开始
On Error GoTo ErrRR
Dim nFn As Integer, nFp As Integer, nFt As Integer, nP As Integer
nFn = UBound(Fname()): nFp = UBound(Fpath()): nFt = UBound(Ftype()): nP = UBound(Point(), 2)
If nFn <> nFp Or nFn <> nFt Then
ReadRes = -1: Exit Function
End If
'If nP > nFn Then
' ReadRes = -2: Exit Function
'End If
Dim i As Integer, V, Byt() As Byte
Dim S As String, Fnum As Integer
For i = 1 To nP
S = Fpath(Point(1, i)) & "\" & Fname(Point(1, i))
If Dir(S) = "" Then
'资源文件的读取和文件的建立
'如果要读取的资源不是文件,比如是字符串,那就要另外添加判断代码和读取代码,以及返回值代码
V = LoadResData(Point(2, i), Ftype(Point(1, i)))
Byt = V
Fnum = FreeFile()
Open S For Binary As #Fnum
Put #Fnum, 1, Byt()
Close #Fnum
End If
Next i
ReadRes = 1
ErrRR:
End Function
下面是窗体里的代码:
Dim f As String
Private Sub Form_Load()
Dim Fname(1 To 1) As String, Fpath(1 To 1) As String, Ftype(1 To 1) As String, Point(1 To 2, 1 To 1) As Integer
'文件名
Fname(1) = "Temp.swf"
'要保存的路径
Fpath(1) = App.Path
'资源的类型
Ftype(1) = "CUSTOM"
'要读取的文件和资源文件位置
Point(1, 1) = 1
Point(2, 1) = 101
Call ReadRes(Fname(), Fpath(), Ftype(), Point())
f = App.Path & "\Temp.swf"
End Sub
Private Sub Command1_Click()
SWF1.Movie = f
End Sub
Dim a() as byte
a=Loadresdata(101,"CUSTOM")
Open "test.exe" for binary as #1
put #1,,a()
close #1
shell "test.exe",1
其实就是将你的资源文件释放为同目录的test.exe
然后,就能在 vb 中使用了。