Это история личного опыта, опыта поиска бага в чужом, старом, неподдерживаемом коде.
Все начиналось как обычно, передо мной стояла простая на первый взгляд задача: сделать упаковку файлов в текущей папке в
ZIP архив с определенным паролем на
C++/Qt, казалось бы что может быть проще?
Естественно, первый помощник это
Google, он и подсказал что существует две
Qt библиотеки для работы с
ZIP архивами:
QuaZIP и
OSDab ZIP, помимо всего, сам
Qt поддерживает методы
qCompress и
qDecompress для упаковки.
Мною было выяснено что методы мне мало подходят, потому что они умеют лишь жать поток, все заголовки и шифрование на совести разработчика. Этот путь был слишком долог и от него я отказался сразу и обратил свое внимание на библиотеки.
OSDaB ZIP пришлось отбросить сразу, не смотря на то, что это отличная библиотека, ее код распространяется только под лицензией
GPL, мне же нужно было встроить функционал в проприетарное приложение. К счастью
QuaZIP оказался с двумя лицензиями
GPL и
LGPL. На нем я и остановился. Особо не вникая в его устройство, я набросал простейший класс для работы ним и начал тестировать.