Page 125 of 149

arclite — работа с архивами на основе 7-Zip

Posted: Sun 15 Aug, 2010 22:26
by 2useven10
Тема для обсуждения arclite — нового альтернативного плагина архиватора 7-Zip для Far.
("Старый" плагин 7zipalt обсуждается в прежней теме.)

Внимание:
Начиная с билда 1762 плагин входит в комплект поставки юникодной версии FAR'а, заменяя собой Multiarc.
В arclite не реализованы некоторые функции, присутствовавшие в Multiarc, в частности упаковка в RAR.

Обсуждение: arclite вместо MultiArc в комплекте Far 2











Кодек LZHAM

arclite — работа с архивами на основе 7-Zip

Posted: Wed 01 May, 2019 10:20
by Dennis_Moore

Latest post of the previous page:

2useven10, что-то у меня не вышло собрать с ключем /d2Qvec-mathlib, не пойму куда его добавлять. Дописал в 75-ю строку build.bat в каталоге arclite и сразу после nmake и в конце, все равно получаю ошибку:

arclite — работа с архивами на основе 7-Zip

Posted: Wed 01 May, 2019 10:31
by DrKnS
Дописывайте в arclite/makefile_vc в CPPFLAGS.

arclite — работа с архивами на основе 7-Zip

Posted: Wed 01 May, 2019 13:34
by 2useven10
makefile_vc замените
CPPFLAGS=$(CPPFLAGS) /arch:IA32
на
CPPFLAGS=$(CPPFLAGS) /arch:IA32 /d2Qvec-mathlib-

arclite — работа с архивами на основе 7-Zip

Posted: Wed 01 May, 2019 13:47
by Dennis_Moore
DrKnS wrote: Wed 01 May, 2019 10:31 Дописывайте в arclite/makefile_vc в CPPFLAGS
Видимо мне нужна инструкция для совсем деревянных:

arclite — работа с архивами на основе 7-Zip

Posted: Wed 01 May, 2019 13:58
by 2useven10
там минус в конце, ну и для единообразия опцию начните со слеша - скопируйте из моего поста.

arclite — работа с архивами на основе 7-Zip

Posted: Wed 01 May, 2019 14:16
by Dennis_Moore
2useven10 wrote: Wed 01 May, 2019 13:34 makefile_vc замените
CPPFLAGS=$(CPPFLAGS) /arch:IA32
на
CPPFLAGS=$(CPPFLAGS) /arch:IA32 /d2Qvec-mathlib-
Пошла сборка! А я добавлял в CPPFLAGS на 8-й строке. Итог проверки: на PII как и прочие версии собранные VS падает утягивая FAR. Пока буду пользоваться MinGW сборкой. Все-равно спасибо за совет, жаль что не помогло.

arclite — работа с архивами на основе 7-Zip

Posted: Wed 01 May, 2019 14:27
by 2useven10
Dennis_Moore wrote: Wed 01 May, 2019 14:16 на PII как и прочие версии собранные VS падает утягивая FAR.
Значит костылить так смысла нет. Спасибо за проверку.
PS:студия у вас последняя (на текущий момент это 15.9.11) ?

arclite — работа с архивами на основе 7-Zip

Posted: Wed 01 May, 2019 14:31
by Dennis_Moore
2useven10 wrote: Wed 01 May, 2019 14:27 студия у вас последняя (на текущий момент это 15.9.11) ?
Вроде да. В этом посте лог сборки.

Upd.: Кстати интересно что по Enter, как и официальная, эта сборка не вошла открывая ассоциированный архиватор, но если через F11 -> Open Archive то ArcLite не упал и зашел и распаковать даже вышло. При создании архива произошел вылет. Когда я перезапустил FAR и попробовал еще раз проделать вход в архив то ничего не вышло и ArcLite уже падает сразу.

arclite — работа с архивами на основе 7-Zip

Posted: Wed 01 May, 2019 15:05
by 2useven10
Можно попробовать выкосить использование плавающей арифметики из плагина.
Если бы был способ как-то автоматизировать поиск мест где она применяется (их не должно быть много) вполне можно сделать...

arclite — работа с архивами на основе 7-Zip

Posted: Wed 01 May, 2019 17:38
by Dennis_Moore
Между дел попробовал собрать в VS 2019. Что с /d2Qvec-mathlib- что без - ситуация аналогичная.

arclite — работа с архивами на основе 7-Zip

Posted: Fri 03 May, 2019 10:10
by Dennis_Moore
В теме о сборке FAR'a меня попросили выложить бинарник собранный MinGW и я решил его еще раз проверить перед этим, оказалось не зря. На машине с PII на Win2k с враппером все работает отлично (пакует, распаковывает, не вылетает), но вот решил еще раз проверить на виртуалке с XP и оказалось что там работает не все гладко. Архивы создает, не вылетает, но войти в них не может. При попытке входа в только что созданный архив выдает такую ошибку (на WinXP и Win7):
Странно как-то: там работает, тут не работает. Хотелось бы узнать почему так.

Бинарник:
ArcLite.7z
(1.05 MiB) Downloaded 49 times

arclite — работа с архивами на основе 7-Zip

Posted: Fri 03 May, 2019 12:38
by 2useven10
Dennis_Moore wrote: Fri 03 May, 2019 10:10 Странно как-то: там работает, тут не работает. Хотелось бы узнать почему так.
Не вижу ничего странного.
Если проверять errno после ф-ии о которой нигде не сказано, что она errno выставляет - результат ожидаемый.
CHECK там просто надо убрать.

arclite — работа с архивами на основе 7-Zip

Posted: Fri 03 May, 2019 13:41
by Dennis_Moore
2useven10 wrote: Fri 03 May, 2019 12:38 CHECK там просто надо убрать.
Закомментировал в attr.cpp 49-ю строку, пропали все надписи в меню и диалогах плагина.
Ошибка при вход в архив стала радикальнее:

Официальная сборка делается из этого же кода и ей эта строка не мешает. Это явно проблемы только MinGW сборки. Вот только почему одна и та же dll работает нормально на W2k и не очень на остальных системах ? Может стоит проверить на XP с процессором без SSE2, но у меня сейчас такой нет (и что-то мне подсказывает что дело не в этом).

arclite — работа с архивами на основе 7-Zip

Posted: Fri 03 May, 2019 16:45
by 2useven10
Dennis_Moore wrote: Fri 03 May, 2019 13:41 Закомментировал в attr.cpp 49-ю строку, пропали все надписи в меню и диалогах плагина.
Не могу представить как изменения и эффект могут быть связаны. может дело в чем-то ещё?
Кроме 10-ки сейчас ничего нет. До виртуалки доберусь не раньше 6-го.
Если что-то вам подскажет в чём дело - дайте знать.

arclite — работа с архивами на основе 7-Zip

Posted: Mon 06 May, 2019 14:53
by 2useven10
Dennis_Moore,
Проверил на нескольких VM (32):
Vista, 2k3, Xp(sp3) - arclite.dll (MinGW 8.1.0) работает.
2k - не работает (отсутствуют ф-и, какие не проверял).

arclite — работа с архивами на основе 7-Zip

Posted: Mon 06 May, 2019 14:54
by 2useven10
PS: код в attr.cpp такой:
wstring format_int_prop(const PropVariant& prop) { wchar_t buf[32]; return wstring(_i64tow(prop.get_int(), buf, 10)); } wstring format_uint_prop(const PropVariant& prop) { wchar_t buf[32]; return wstring(_ui64tow(prop.get_uint(), buf, 10)); }