|
UpdateResource这个函数可以替换自定义资源文件,可是替换位图文件的时候出现了问题,替换的时候成功,可是在程序调用的时候提示无效图片...我知道是函数写错了,该怎样解决这个问题呢?
Private Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long
Private Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As Long, ByVal lpName As Long, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long
Private Const RT_BITMAP = 2&
Private Function WriteRes(ByVal ResFileName As String, ByVal WriteFileName As String, ByVal ResID As Long) As Boolean
Dim VbArrayRes() As Byte '写入内容
Dim hUpdate As Long '被写入的目标文件路径
Dim Ret As Long '资源句柄
hUpdate = BeginUpdateResource(WriteFileName, False) '打开要写入的目标文件
ReDim VbArrayRes(FileLen(ResFileName) - 1) '计算资源文件大小
Open ResFileName For Binary As #1 '获取资源文件内容
Get #1, , VbArrayRes
Close #1
Ret = UpdateResource(hUpdate, RT_BITMAP, ResID, 2052, VbArrayRes(0), UBound(VbArrayRes) + 1) '添加资源
If Ret <> 0 Then
WriteRes = True
End If
'关闭资源更新
Ret = EndUpdateResource(hUpdate, False)
End Function
Private Sub Command2_Click()
WriteRes "C:\Documents and Settings\Administrator\桌面\test.bmp", "C:\Documents and Settings\Administrator\桌面\test.exe", 101
End Sub |
|