Observer — распаковка файлов из различных контейнеров

Здесь можно обсудить ваш любимый плагин.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Тема для обсуждения плагина Observer.
Плагин предназначен только для распаковки файлов. Запаковка/редактирование архивов не планируется.

Хотелки/баги:

Известные проблемы:

Планируемые новые модули:

Если "ничего не работает", то прежде чем писать сюда:


Сторонние модули:
  • Dir — поддержка вывода команд dir и ls в качестве виртуального архива.
  • Inno Setup — поддержка файлов Inno Setup (сделан на основе innounp).
  • cab — распаковка нестандартных .cab архивов (Windows Update и др.)
Last edited by Ariman on Wed 04 May, 2022 14:36, edited 7 times in total.
Docent1
Posts: 561
Joined: Thu 31 Mar, 2005 23:13
Been thanked: 1 time

Re: Observer — распаковка файлов из различных контейнеров

Post by Docent1 »

Latest post of the previous page:

При открытии одного образа (Windows98.vhd) проявился баг - падает Far (build 1807 bis22 x86, Windows 7 x64). 7-zip этот образ открывает.
Attachments
FStd_trap.rar
FStd_trap.log
(7.11 KiB) Downloaded 76 times
Docent1
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Re: Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Docent1 wrote:При открытии одного образа (Windows98.vhd) проявился баг - падает Far (build 1807 bis22 x86, Windows 7 x64). 7-zip этот образ открывает.
Раз Windows98 подозреваю там FAT32. Русских имён файлов случайно нет?
Docent1
Posts: 561
Joined: Thu 31 Mar, 2005 23:13
Been thanked: 1 time

Re: Observer — распаковка файлов из различных контейнеров

Post by Docent1 »

Ariman wrote: Раз Windows98 подозреваю там FAT32. Русских имён файлов случайно нет?
Да, там FAT32 и русские имена в корне диска есть (в файле vhd).
Docent1
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Re: Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Docent1 wrote:Да, там FAT32 и русские имена в корне диска есть (в файле vhd).
Ага, известная бага. В DiscUtils проблема была, вроде починили. Как допилю поддержку длинных имён для того же FAT-а (автор либы не стал её делать), так выпущу новую версию.
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: Observer — распаковка файлов из различных контейнеров

Post by Kerberos464 »

Dependency walker показывает, что все *.so и *.dll в папке modules требуют библиотеку msvcr90.dll, можно ли собрать плагин без необходимости иметь её в системе?
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Re: Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Kerberos464 wrote:Dependency walker показывает, что все *.so и *.dll в папке modules требуют библиотеку msvcr90.dll, можно ли собрать плагин без необходимости иметь её в системе?
Это Visual C++ Runtime.
Собрать теоретически можно, но я этого делать не буду. Пробовал в проекте держать конфигурации для случаев со статическим и динамическим runtime-ом - неудобно.
А что мешает установить библиотечку? Инсталлер в свободном доступе на сайте MS.
Dzirt2005
Posts: 326
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 10 times

Re: Observer — распаковка файлов из различных контейнеров

Post by Dzirt2005 »

Ariman wrote:...
А что мешает установить библиотечку? Инсталлер в свободном доступе на сайте MS.
Дык как обычно - большое количество версий. Ты вот лично какую версию линкуешь в свой плагин? ;) А какая лежит на сайте MS? ;)
Я почему спрашиваю - вот у меня на компьютере стоят следующие версии msvcr90.dll (я ХЗ откуда они взялись... что-то ставил):

Code: Select all

9.0.21022.8
9.0.30729.1
9.0.30729.4137
9.0.30729.4148
9.0.30729.4926
9.0.30729.4940
9.0.30729.4974
9.0.30729.5570
9.0.30729.6161
И не факт, что это все возможные версии... Да, я сразу уточню - версия библиотеки _должна_ быть именно такая, как при линковке - чёрт бы побрал этот MS со своим side-by-side'ом... :(
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Re: Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Dzirt2005 wrote:Да, я сразу уточню - версия библиотеки _должна_ быть именно такая, как при линковке
Не совсем. Надо чтобы была установлена версия не меньше той, что прописана в манифесте. У меня в сборке в манифесте стоит 9.0.21022.8, т.е. по идее должна подойти любая версия (но, естественно, чем новее тем лучше).
Dzirt2005
Posts: 326
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 10 times

Re: Observer — распаковка файлов из различных контейнеров

Post by Dzirt2005 »

Ariman wrote:
Dzirt2005 wrote:Да, я сразу уточню - версия библиотеки _должна_ быть именно такая, как при линковке
Не совсем. Надо чтобы была установлена версия не меньше той, что прописана в манифесте. У меня в сборке в манифесте стоит 9.0.21022.8, т.е. по идее должна подойти любая версия (но, естественно, чем новее тем лучше).
Решил проверить ... и не смог :) Все *.dll и *.so в моем каталоге Observer используют только:
msi.dll
zlib1.dll
USER32.dll
SHELL32.dll
ADVAPI32.dll
KERNEL32.dll
OLEAUT32.dll
Файлы от 7.01.2011, то есть раньше они не требовали msvcr90?

И мне почему-то помнится головняк с версиями в манифестах... Когда ставишь vc_redist от VC2008 с SP1, то все скомпилированное без SP1 не работает, ему нужен vc_redist от VC без SP1. Может я конечно что-то уже подзабыл... Стараюсь компилировать VC2003 или VC2010, так спится спокойнее :)
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Re: Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Dzirt2005 wrote:Файлы от 7.01.2011, то есть раньше они не требовали msvcr90?
Да, раньше я статический рантайм использовал. Но потом суммарный размер плагина резко распух и я решил его уменьшить переездом на динамический рантайм.
Dzirt2005 wrote:И мне почему-то помнится головняк с версиями в манифестах... Когда ставишь vc_redist от VC2008 с SP1, то все скомпилированное без SP1 не работает, ему нужен vc_redist от VC без SP1. Может я конечно что-то уже подзабыл...
Тут я не скажу. У меня бывало что работало с рантаймом старше чем в манифесте. Но широко я этот вопрос не рассматривал.
Dzirt2005 wrote:Стараюсь компилировать VC2003 или VC2010, так спится спокойнее :)
Так там свой рантайм есть, какая разница? :)
Dzirt2005
Posts: 326
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 10 times

Re: Observer — распаковка файлов из различных контейнеров

Post by Dzirt2005 »

Ariman wrote:
Dzirt2005 wrote:Стараюсь компилировать VC2003 или VC2010, так спится спокойнее :)
Так там свой рантайм есть, какая разница? :)
Большая, я бы даже сказал принципиальная - ни тому ни другому никакой манифест не нужен, dll-ку можно просто рядом положить. В отличие от... нужно что-то искать, подходящую версию, и _устанавливать_ ее на компьютер (простое копирование не катит). Не все и не всегда это хотят делать, особенно если компьютер чужой. Far ведь стремится быть портабельным?

PS: Я тут еще сравнил объем файлов *.so в своей версии (со статической линковкой) и с версией 1.8.4 (с динамической). На файлах:

Code: Select all

isoimg.so
mime.so
msi.so
nsis.so
pst.so
relic.so
udfimg.so
vp.so
wise.so
x23cat.so
сэкономилось аж 550 кбайт. Оно правда того стОит?
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Re: Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Dzirt2005 wrote:ни тому ни другому никакой манифест не нужен, dll-ку можно просто рядом положить.
Хм. Если так, надо попробовать переехать на 2010. А то, конечно, эти пляски с манифестами напрягают.
Dzirt2005 wrote:сэкономилось аж 550 кбайт. Оно правда того стОит?
В 1.8.4 файлов больше. Ещё 4 модуля добавилось, плюс сопутствующие библиотеки. И разница в размерах там выше чем на 550кб.
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: Observer — распаковка файлов из различных контейнеров

Post by Kerberos464 »

Ariman wrote:Это Visual C++ Runtime.
Собрать теоретически можно, но я этого делать не буду. Пробовал в проекте держать конфигурации для случаев со статическим и динамическим runtime-ом - неудобно.
А что мешает установить библиотечку? Инсталлер в свободном доступе на сайте MS.
скоко вы тут без меня наговорили :)
объясню, почему не хочется ставить библиотеку:
1. хочется юзать плагин в Windows Setup'е (например, когда вин7 устанавливается по сети), в нём установить VC++ runtimes не получится.
2. более важная причина - портабельность, к которой мы почти пришли в третьем фаре. хочется носить с собой "свой" фар и иметь возможность запустить его на любой машине, даже если VC++ runtimes отсутствует.

ладно, если не хочется делать статическую версию, можно ли хотя бы сделать, чтобы при отсутствии VC++ runtimes плагин не валил фар при запуске?
спасибо :)
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
Dzirt2005
Posts: 326
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 10 times

Re: Observer — распаковка файлов из различных контейнеров

Post by Dzirt2005 »

Ariman wrote:
Dzirt2005 wrote:сэкономилось аж 550 кбайт. Оно правда того стОит?
В 1.8.4 файлов больше. Ещё 4 модуля добавилось, плюс сопутствующие библиотеки. И разница в размерах там выше чем на 550кб.
Ну да, их там 10. Т.е. по 55 кбайт на модуль. В версии 1.8.4 их 14 штук. Т.е. плюс 770 кбайт. Да даже пусть 1 мбайт. Объем моего установленного Фара с любимыми плагинами 37 мбайт. Я повторю вопрос - сэкономленный 1 мбайт хоть как-то оправдывает геморрой с необходимостью установки определенной версии vc_redist? На мой взгляд - вообще никак не оправдывает...

PS: Вообще лично у меня этот долбаный side-by-side сидит во всех возможных печенках... Когда что-то работавшее вдруг ни с того ни сего перестает работать с совершенно невнятными сообщениями, опять начинаются поиски кто успел себе поставить очередной SP к студии и какую именно версию надо накатить на удаленном филиале потому что там сервер перестал запускаться :( Самое противное, что я никогда в жизни не встречался с так называемым dll-hell'ом, который по заявлению мс-вских маркетологов и был исправлен этим самым side-by-side'ом, а вот с последствиями этого "исправления" встречался много-много раз. И несказанно рад, что в VC-2010 они опять от него отказались.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Re: Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Kerberos464 wrote:можно ли хотя бы сделать, чтобы при отсутствии VC++ runtimes плагин не валил фар при запуске?
Так это не ко мне. Это Фар грузит плагины.
Dzirt2005 wrote:Я повторю вопрос - сэкономленный 1 мбайт хоть как-то оправдывает геморрой с необходимостью установки определенной версии vc_redist? На мой взгляд - вообще никак не оправдывает...
Мне сложно оценить, я то не страдаю. :P
Dzirt2005 wrote:И несказанно рад, что в VC-2010 они опять от него отказались.
Нормальная практика у MS. Проталкивать какую-нибудь "гениальную" идею, а потом торжественно отказаться. :ha:
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Re: Observer — распаковка файлов из различных контейнеров

Post by Ariman »

На тест.
Обновление модуля VDisk с исправленной проблемой с русскими именами файлов на FAT-е. Добили баг с автором DiscUtils.
Скачать
Post Reply

Return to “Обсуждение плагинов”