下载一个zlib.dllPublic Declare Function uncompress Lib "zlib.dll" (dest As Any, destLen As Any, src As Any, ByVal srcLen As Long) As Long Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)Public Function DecompressData(TheData() As Byte, OrigSize As Long) As Long Dim BufferSize As Long, TempBuffer() As Byte, Result As Long BufferSize = OrigSize BufferSize = BufferSize + (BufferSize * 0.01) + 12 ReDim TempBuffer(BufferSize) Result = uncompress(TempBuffer(0), BufferSize, TheData(0), UBound(TheData) + 1) ReDim Preserve TheData(BufferSize - 1) CopyMemory TheData(0), TempBuffer(0), BufferSize Erase TempBuffer DecompressData = Result End Function
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)Public Function DecompressData(TheData() As Byte, OrigSize As Long) As Long
Dim BufferSize As Long, TempBuffer() As Byte, Result As Long
BufferSize = OrigSize
BufferSize = BufferSize + (BufferSize * 0.01) + 12
ReDim TempBuffer(BufferSize)
Result = uncompress(TempBuffer(0), BufferSize, TheData(0), UBound(TheData) + 1)
ReDim Preserve TheData(BufferSize - 1)
CopyMemory TheData(0), TempBuffer(0), BufferSize
Erase TempBuffer
DecompressData = Result
End Function