вопрос по lzma sdk (7zip сжатие)
Потребовалось сжимать данные.
Скачал с офиц. сайта http://www.7-zip.org/sdk.html
Необходимо выполнять компрессию из памяти в память.
Насколько понял для этого предназначены функции
[FONT="Courier New"]
MY_STDAPI LzmaCompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t srcLen,
unsigned char *outProps, size_t *outPropsSize, /* *outPropsSize must be = 5 */
int level, /* 0 <= level <= 9, default = 5 */
unsigned dictSize, /* default = (1 << 24) */
int lc, /* 0 <= lc <= 8, default = 3 */
int lp, /* 0 <= lp <= 4, default = 0 */
int pb, /* 0 <= pb <= 4, default = 2 */
int fb, /* 5 <= fb <= 273, default = 32 */
int numThreads /* 1 or 2, default = 2 */
);
MY_STDAPI LzmaUncompress(unsigned char *dest, size_t *destLen, const unsigned char *src, SizeT *srcLen,
const unsigned char *props, size_t propsSize);
[/FONT]
Вопрос такой: как узнать, сколько байт сжатых данных записалось в dest функцией LzmaCompress?
Цитата: Sashok123
Вопрос такой: как узнать, сколько байт сжатых данных записалось в dest функцией LzmaCompress?
Дык из описания функции само собой вытекает, что нужный параметр будет в destLen.
Ну а если я сжимаю файл 100 МБ, а destLen выставляю 200 МБ, тогда в чем прикол компрессора?
А заранее знать во сколько раз сожмется я тоже не могу
Out: destLen - processed output size
Processed - значит обработанный, преобразованный. Т. е. после работы функции здесь должен быть итоговый размер сжатых данных.
Все, понял, спасибо, не учел, что туда указатель передается, как-то упустил из виду