Форум: "Основная";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];
ВнизКак прикрутить к своему приложению "7z.dll"? Найти похожие ветки
← →
Валигози © (2009-06-09 15:55) [0]7z.dll - это dll-ка выполняющая основную работу в известном архиваторе "7zip": http://www.7-zip.org/
Вот какие функции она экспортирует:
SetLargePageMode
GetNumberOfMethods
GetNumberOfFormats
GetMethodProperty
GetHandlerProperty
GetHandlerProperty2
CreateObject
Собственно 7z.dll меня интересует вовсе не для работы с архивами *.7z, хочу воспользоваться возможностью архиватора 7zip "влезать" внутрь инсталляшки созданной с помощью Nullsoft-овского NSIS: http://nsis.sourceforge.net/Main_Page
← →
Sapersky (2009-06-09 17:09) [1]На оф. сайте в разделе Links есть ссылки на Delphi-интерфейсы.
← →
Валигози © (2009-06-09 18:23) [2]
> Sapersky (09.06.09 17:09) [1]
> На оф. сайте в разделе Links есть ссылки на Delphi-интерфейсы.
Эти ссылки я естественно в первую очередь просмотрел:
1) Delphi interface to 7-zip dll
Эта ссылка нерабочая
2) TSevenZipVCL - Delphi VCL for 7zip format
Эта компонента умеет работать только с архивами 7zip. А если подсунуть ей инсталляшку cозданную с помощью NSIS - матерится, что это не архив.
3) Delphi API for 7-Zip plugins (7z, ZIP, RAR ...)
Вот это я вообще не понял при чём тут Delphi. Если скачать этот архив - внутри никаких исходников нет... :(
← →
Sapersky (2009-06-09 19:25) [3]А если подсунуть ей инсталляшку cозданную с помощью NSIS - матерится, что это не архив.
Ну посмотрите TSevenZip.SFXCheck, он там ищет сигнатуру 7z по смещению 65536. Может, у NSIS она ближе к началу файла (написано что размер инсталлятора 34 кб), попробуйте поискать вообще по всему файлу.
← →
Валико (2009-06-09 20:42) [4]А вы точно уверены что 7z.dll может это делать ?
Мне почему-то казалось, что влезать в инсталяшки это фича сугубо файл-менеджера, о чём довольно однозначно написано на сорсфорже...
← →
Валигози © (2009-06-10 09:38) [5]
> Валико (09.06.09 20:42) [4]
>
> А вы точно уверены что 7z.dll может это делать ?
>
> Мне почему-то казалось, что влезать в инсталяшки это фича
> сугубо файл-менеджера, о чём довольно однозначно написано
> на сорсфорже...
Уверен, что может. Я с помощью архиватора 7zip вхожу в NSIS-инсталляторы как в папки (точнее как в архивы), а файл "7z.dll" это ядро архиватора 7zip. Кроме того, в папке с архиватором есть ещё файл "7z.exe", который позволяет с командной строки выполнять все операции с архивами (используя в свою очередь "7z.dll"). Например если натравить на него NSIS-файл такой командой7z.exe L nsisfile.exe
- он выдаст список файлов внутри NSIS-инсталляшки. Вообще-то именно через "7z.exe", у меня сейчас всё и работает, просто захотелось отказаться от посредника "7z.exe" и использовать "7z.dll" напрямую...
← →
sniknik © (2009-06-10 11:17) [6]> просто захотелось отказаться от посредника "7z.exe" и использовать "7z.dll" напрямую...
а с чего решил что это просто посредник? в документации так написано?
по логике 7z.exe это программа архиватор, как и rar например, и может поддерживать множество алгоритмов архивирования (на усмотрение автора ее писавшего).
а 7z.dll это длл по реализации (и для распространения) родного алгоритма.
т.е. грубо говоря одно часть, другое целое.
← →
Валигози © (2009-06-10 11:33) [7]
> sniknik © (10.06.09 11:17) [6]
>
> > просто захотелось отказаться от посредника "7z.exe" и
> использовать "7z.dll" напрямую...
> а с чего решил что это просто посредник? в документации
> так написано?
Это элементарно: 7z.exe это консольное приложение, 7zFM.exe это GUI-шное приложение, оба они подгружают 7-zip.dll и оба умеют работать с NSIS-архивами. Кроме того размер 7-zip.dll726016
, а388096
и тем более 7z.exe всего150016
байт. Логично, что бы всю "архивную" работу вложить в 7-zip.dll.
← →
Валигози © (2009-06-10 11:37) [8]Скажите, пожалуйста, кто знает, что означают в новых Дэлфях конструкции в угловых скобочках, например:?
var
GArchiveMagics: TDictionary<AnsiString,TGUID>;type
TGUIDList = TList<TGUID>;
TArchiveReader = class
private class var
FFormats: TObjectDictionary<string,TGUIDList>;
← →
sniknik © (2009-06-10 12:37) [9]> Кроме того размер 7-zip.dll 726016, а 388096 и тем более 7z.exe всего 150016 байт.
а "консольное" для dos-а 7za.exe где никаких dll 536064 байт. ну и что?
> Логично, что бы всю "архивную" работу вложить в 7-zip.dll.
с точки зрения распространения и поддержки своего формата, совершенно нелогично. это проблема программиста в конечный продукт поддержку разного вставлять.
← →
Ega23 © (2009-06-10 12:51) [10]
> Логично, что бы всю "архивную" работу вложить в 7-zip.dll.
Совершенно не обязательно
← →
Валигози © (2009-06-10 13:09) [11]
> Ega23 © (10.06.09 12:51) [10]
> > Логично, что бы всю "архивную" работу вложить в 7-zip.dll.
> Совершенно не обязательно
Я и не говорил, что обязательно - я сказал логично. Но это не важно. Всё же хочу вернуться к вопросу о угловых скобочках. Дело в том, что я нашёл исходник для подключения к 7z.dll (думаю это то что мне и нужно), но он написан на Delphi2009, а там используются какие-то неизвестные мне конструкции вида:var
GArchiveMagics: TDictionary<AnsiString,TGUID>;
Возможно ли этот исходник переделать для Delphi6?
Вот ссылки на этот исходник:
1) http://google.com/codesearch/p?hl=ru#-qT0MeWnuto/trunk/src/uSevenZip.pas&q=lang:pascal
2) http://google.com/codesearch/p?hl=ru#-qT0MeWnuto/trunk/src/uStreamWrapper.pas&q=lang:pascal
3) http://google.com/codesearch/p?hl=ru#-qT0MeWnuto/trunk/src/uArchiveReader.pas&q=lang:pascal
...
← →
sniknik © (2009-06-10 13:31) [12]> Возможно ли этот исходник переделать для Delphi6?
а зачем?
дисклаймер первой же ссылки
@author original from JEDI Code Library by Uwe Schuster AND Jan Goyvaerts
modified by iLuE
@version 2009/02/15 1.0 Initial revision.
т.е. у него есть автор, а эта уже "переделка". вопрос - с чего? какая версия послужила исходником?
задавай сам себе правильные вопросы, в них решение. © я.
← →
Валигози © (2009-06-10 14:06) [13]
> sniknik © (10.06.09 13:31) [12]
>
> > Возможно ли этот исходник переделать для Delphi6?
> а зачем?
> дисклаймер первой же ссылки
> @author original from JEDI Code Library by Uwe Schuster
> AND Jan Goyvaerts
> modified by iLuE
> @version 2009/02/15 1.0 Initial revision.
> т.е. у него есть автор, а эта уже "переделка". вопрос -
> с чего? какая версия послужила исходником?
>
> задавай сам себе правильные вопросы, в них решение. © я.
>
Действительно! Вот это я туплю! И что интересно, что я видел этот комментарий и даже искал эти исходники на sourceforge.net, а сейчас внимательно перечитал этот комментарий, опять зашёл на sourceforge.net, скачал библиотеку JCL и действительно в ней есть модуль sevenzip.pas. Спасибо! Буду разбираться...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c