Menu

Tree [d0b3d1] main 52.4 /
 History

HTTPS access


File Date Author Commit
 README.md 2021-08-28 Franco Corbelli Franco Corbelli [bfce1a] Update README.md
 libzpaq.cpp 2021-08-27 Franco Corbelli Franco Corbelli [6c5e13] Add files via upload
 libzpaq.h 2021-08-27 Franco Corbelli Franco Corbelli [6c5e13] Add files via upload
 zsfx.cpp 2021-08-28 Franco Corbelli Franco Corbelli [d0b3d1] Add files via upload

Read Me

zsfx

ZPAQ/zpaqfranz SFX module for Windows (32/64)

zsfx.exe (and zsfx32.exe) create self-extracting Windows executables from ZPAQ or zpaqfranz archives
Supports just about everything:
- journaling
- multithread
- command switches (-only, -to...)
- non-Latin charsets
- fast, really fast
- easy to use (no weird "voodoo" needed)
- the 32 bit version (zsfx32.exe) can extract limitless archives (just not as fast as the 64 bit)

The software is not very small (~300KB) and the resulting EXE must be less than 2GB in size (Windows limitation).

The archaic (2012) ZPAQ sfx module

Note: if you use something like UPX or whatever heuristic-fake virus detection is common. It is not my fault :)

The usage is trivial

Usage:   zsfx x nameofzpaqfile (...zpaq extraction options) (-output mynewsfx.exe)

Ex: zsfx x z:\1.zpaq
Ex: zsfx x z:\1.zpaq -to .\xtracted\
Ex: zsfx x z:\1.zpaq -to y:\testme\ -output z:\mynewsfx.exe

Do NOT call the output file zsfx.exe or zsfx32.exe
Do NOT rename zsfx.exe and zsfx32.exe to something else

CREDITS

How to build

In this case only Windows is supported, be careful to link the pthread library.
Today it is splitted into 3 source code, not merged as zpaqfranz, because no "strange" platform here, just plain Win.

Targets

Quick-and-dirty
g++ zsfx.cpp libzpaq.cpp -o zsfx

Size optimizations
Windows 64 (g++ 7.3.0)
g++ -Os zsfx.cpp libzpaq.cpp -o zsfx -static -fno-rtti -Wl,--gc-sections

Windows 32 (g++ 7.3.0)
c:\mingw32\bin\g++ -m32 -Os  zsfx.cpp libzpaq.cpp -o zsfx32 -pthread -static -fno-rtti  -Wl,--gc-sections