В этом каталоге находится упрощенная переписанная на C мною, diamond'ом, версия LZMA-упаковщика. Оригинальный LZMA SDK 4.32 является copyright (c) 1999-2005 Igor Pavlov, может быть получен на странице http://www.7-zip.org/sdk.html, содержит, в частности, версии исходного кода на C++,C# и Java для упаковки и распаковки, код LZMA-распаковки на ANSI-C, описание формата 7z. Эта версия не является безопасной в многопоточной среде, поддерживает только bt4 match-finder, некоторые параметры упаковки зафиксированы (впрочем, это при необходимости легко модифицировать), поддерживается только сжатие данных в оперативной памяти. (Этих ограничений нет в оригинальном LZMA SDK.) Эта версия не обязана компилироваться любым компилятором, ибо я использую только VC++, хотя единственное известное мне отклонение от ANSI C состоит в использовании VC-специфичной директивы #pragma intrinsic(memcpy), необходимой, чтобы memcpy была встроена прямо в код - в результате библиотека не ссылается ни на одну из функций C run-time library. (Мне это необходимо, поскольку библиотека используется в ассемблерной программе MtApPack, не использующей RTL и к тому же существующей и для Windows, и для Kolibri.) Эта библиотека, как и оригинальный LZMA SDK, может быть использована в других программах в соответствии с одной из лицензий (на ваш выбор) GNU LGPL или GNU CPL. (Оригинальный SDK также допускает использование оригинальной библиотеки без ограничений при условии использования объектных файлов без модификации кода, на данную версию это не распространяется.) Экспортируются две функции: в C++-стиле объявление выглядит так: extern "C" __stdcall void lzma_set_dict_size(unsigned logdictsize); extern "C" __stdcall unsigned lzma_compress( const void* source, void* destination, unsigned length, void* workmem); Перед упаковкой требуется установить размер словаря первой из этих функций, принимающей логарифм по основанию 2 этого значения (т.е. dictsize == (1<