There is e.g. zlib - check if you have it at %ProgramFiles%\Intel\Wireless\Bin\zlib1.dll
Here is a very simple example how to compress a file to *.gz format (attached):
include \masm32\MasmBasic\
MasmBasic.inc ;
download Init Dll "zlib1.dll"
; will trigger a runtime error if not available
Declare gzopen, C:2
Declare gzwrite, C:3
; C calling convention, 3 dword args
Declare gzclose, C:1
Let edi=
FileRead$(
CL$())
; make sure the commandline has a valid file! mov
ebx, gzopen("TheTest.gz", "wb9")
mov ecx, gzwrite(
ebx, edi,
LastFileSize)
; returns # bytes compressed
void gzclose(
ebx)
Inkey Str$("%i kBytes compressed", ecx/1024)
Exitend start
You can get better compression with the
LZMA SDK, which is in the public domain thanks to Igor Pavlov.
lzma.exe and lzma.txt are the key files in the archive, unless you want to try to compile the included C or C++ sources.
But compression and decompression is only a small part of the work required to write an installer...