下面的这段代码意在用图片文件替换Exe中包含的图片资源,但是运行后,没有成功,请各位大侠帮我看看应该怎么解决呀?Public Function OpReplaceImgUsingRawBytes(ByVal new_Imgfile As String) As Boolean
On Error GoTo Error_Handler
Dim lRet As Long
Dim lpResType As Long, lpResName As Long
Dim bResType() As Byte, bResName() As Byte
Dim bRawBytes() As Byte
Dim hUpdateRes As Long
Dim lFreefile As Long
Dim ImgFile As String
Dim fileLong As Long
lFreefile = FreeFile
ImgFile = new_Imgfile
Open ImgFile For Binary Access Read As #lFreefile
ReDim bRawBytes(LOF(lFreefile))
Get #lFreefile, , bRawBytes
Close #lFreefile If SizeOfArray(bRawBytes) <= 0 Then
RaiseError vbObjectError + 9999, "资源查找错误", THIS_MODULE_NAME
End If
hUpdateRes = BeginUpdateResource(m_sFilename, 0&)
If hUpdateRes = 0 Then
RaiseError vbObjectError + 9999, "资源替换错误", THIS_MODULE_NAME
End If
If (m_lResTypeLng And &HFFFF0000) = 0 Then
lpResType = m_lResTypeLng
Else
'lpResType = StrPtr(m_sResTypeStr)
bResType = StrConv(m_sResTypeStr & Chr(0), vbFromUnicode)
lpResType = VarPtr(bResType(0))
End If If (m_lResNameLng And &HFFFF0000) = 0 Then
lpResName = m_lResNameLng
Else
'lpResName = StrPtr(m_sResNameStr)
bResName = StrConv(m_sResNameStr & Chr(0), vbFromUnicode)
lpResName = VarPtr(bResName(0))
End If If UpdateResource(hUpdateRes, lpResType, lpResName, m_iLangInt, VarPtr(bRawBytes(0)), SizeOfArray(bRawBytes)) = 0 Then
RaiseError vbObjectError + 9999, "资源替换错误", THIS_MODULE_NAME
End If
If EndUpdateResource(hUpdateRes, 0&) = 0 Then
RaiseError vbObjectError + 9999, "资源替换错误", THIS_MODULE_NAME
End If
OpReplaceImgUsingRawBytes = True
Exit Function
Error_Handler:
'自定义错误处理
'调用默认错误处理函数
Call DefaultErrorHandler(THIS_MODULE_NAME)
End Function
On Error GoTo Error_Handler
Dim lRet As Long
Dim lpResType As Long, lpResName As Long
Dim bResType() As Byte, bResName() As Byte
Dim bRawBytes() As Byte
Dim hUpdateRes As Long
Dim lFreefile As Long
Dim ImgFile As String
Dim fileLong As Long
lFreefile = FreeFile
ImgFile = new_Imgfile
Open ImgFile For Binary Access Read As #lFreefile
ReDim bRawBytes(LOF(lFreefile))
Get #lFreefile, , bRawBytes
Close #lFreefile If SizeOfArray(bRawBytes) <= 0 Then
RaiseError vbObjectError + 9999, "资源查找错误", THIS_MODULE_NAME
End If
hUpdateRes = BeginUpdateResource(m_sFilename, 0&)
If hUpdateRes = 0 Then
RaiseError vbObjectError + 9999, "资源替换错误", THIS_MODULE_NAME
End If
If (m_lResTypeLng And &HFFFF0000) = 0 Then
lpResType = m_lResTypeLng
Else
'lpResType = StrPtr(m_sResTypeStr)
bResType = StrConv(m_sResTypeStr & Chr(0), vbFromUnicode)
lpResType = VarPtr(bResType(0))
End If If (m_lResNameLng And &HFFFF0000) = 0 Then
lpResName = m_lResNameLng
Else
'lpResName = StrPtr(m_sResNameStr)
bResName = StrConv(m_sResNameStr & Chr(0), vbFromUnicode)
lpResName = VarPtr(bResName(0))
End If If UpdateResource(hUpdateRes, lpResType, lpResName, m_iLangInt, VarPtr(bRawBytes(0)), SizeOfArray(bRawBytes)) = 0 Then
RaiseError vbObjectError + 9999, "资源替换错误", THIS_MODULE_NAME
End If
If EndUpdateResource(hUpdateRes, 0&) = 0 Then
RaiseError vbObjectError + 9999, "资源替换错误", THIS_MODULE_NAME
End If
OpReplaceImgUsingRawBytes = True
Exit Function
Error_Handler:
'自定义错误处理
'调用默认错误处理函数
Call DefaultErrorHandler(THIS_MODULE_NAME)
End Function
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货