7-Zip: Есть хорошие туториалы?

Я думаю об использовании формата 7-Zip для упаковки файлов приложений, так как это очень компактный и популярный формат. Однако я не могу найти руководства по использованию C++ SDK. Я хотел бы получить несколько руководств, которые научат меня, как:

  • Открывать архив из памяти (буфера), а не напрямую с диска.
  • Извлекайте отдельные файлы внутри архива, в буфер, а не на диск.
  • Проверить, можно ли найти определенный файл в архиве.

person Paul Manta    schedule 03.06.2011    source источник
comment
Это открытый исходный код, исходный код является документацией.   -  person Hans Passant    schedule 03.06.2011
comment
@ Ханс Мне не нужно знать, как это работает, чтобы знать, как его использовать. Просто мое мнение.   -  person Paul Manta    schedule 03.06.2011
comment
Как насчет того, чтобы просто расстрелять его?   -  person kenny    schedule 03.06.2011
comment
@кенни, я не понимаю, что ты имеешь в виду. [Редактировать после просмотра определения раскошелиться.] Кому я должен платить и за что?   -  person Paul Manta    schedule 03.06.2011
comment
@Paul Shell в этом случае означает использование оболочки вашей платформы для вызова исполняемого файла вместо использования API. В Windows это означает использование системной функции и передачу ее в команду для выполнения.   -  person stonemetal    schedule 03.06.2011
comment
@stonemetal О, понятно. Это не вариант; Я пишу игру, которая может когда-нибудь стать кроссплатформенной, поэтому использование оболочки не является жизнеспособной альтернативой.   -  person Paul Manta    schedule 03.06.2011
comment
@Paul, вызов оболочки может быть «невидимым». к сведению: dotnetperls.com/7-zip-examples   -  person kenny    schedule 03.06.2011
comment
@kenny Я знаю, что может, но это просто неэлегантное решение, которое невозможно поддерживать, учитывая мой проект. Я должен либо заставить игрока установить 7-Zip, либо предположить, что он уже установлен. Ни тот, ни другой вариант мне не по душе. :)   -  person Paul Manta    schedule 03.06.2011
comment
@kenny Кроме того, я думаю, что начинаю понимать, как его использовать. Я опубликую свой собственный ответ, если мне удастся заставить это работать.   -  person Paul Manta    schedule 03.06.2011
comment
Окей круто. Вы, конечно, можете распространять двоичные файлы 7z как часть своего приложения, но похоже, что вы на правильном пути.   -  person kenny    schedule 03.06.2011
comment
@PaulManta - как ты с этим справился? Огромный успех? Полный провал? Я точно в том же положении, что и вы, какие-нибудь советы?   -  person Ben    schedule 08.11.2012
comment
@Steve К сожалению, мне не удалось найти хороший учебный ресурс. В конце концов я смог понять, как ее использовать, изучая различные источники и примеры, но я почти уверен, что мог бы написать лучший код, если бы лучше разбирался в библиотеке. Удачи!   -  person Paul Manta    schedule 08.11.2012


Ответы (1)


Из документации LMZA SDK:

Декодер ANSI-C LZMA

~~~~~~~~~~~~~~~~~~~

Обратите внимание, что интерфейсы для кода ANSI-C были изменены в LZMA SDK 4.58. Если вы хотите использовать старые интерфейсы, вы можете загрузить предыдущую версию LZMA SDK с сайта sourceforge.net.

Для использования декодера ANSI-C LZMA вам потребуются следующие файлы: 1) LzmaDec.h + LzmaDec.c + Types.h

LzmaUtil/LzmaUtil.c — пример приложения, использующего эти файлы.

В примере приложения должно быть все, что вам нужно, в противном случае фактический источник для 7-zip будет иметь то, что вам нужно. Существует также оболочка C++ для 7-zip здесь, которая должна упростить многие необходимые операции.

person Necrolis    schedule 03.06.2011