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.
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Latest post of the previous page:

solaris wrote:Очевидно, не хватает каких-то библиотек.
Рекомендую бесплатный Dependency Walker 2.2 x64.
Фар есть инструмент, а не нянька. © 2009 DrKnS
solaris
Posts: 18
Joined: Thu 17 May, 2012 10:38
Has thanked: 3 times

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

Post by solaris »

Да нет, их много.

Last edited by solaris on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [code], [spoiler]
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

solaris
Научитесь применять тэги [code] и [spoiler]. Пример — в отредактированном мной Вашем сообщении.
Фар есть инструмент, а не нянька. © 2009 DrKnS
solaris
Posts: 18
Joined: Thu 17 May, 2012 10:38
Has thanked: 3 times

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

Post by solaris »

Спасибо, Dependency Walker помог.
Положил в C:\Windows\System32\ msvcp100.dll и msvcr100.dll и плагин заработал.
Наверное, стоило бы Observer'у выкидывать сообщение об недостающих dll.
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 »

solaris wrote:Наверное, стоило бы Observer'у выкидывать сообщение об недостающих dll.
С радостью приму код, который находит недостающие dll-ки. :wink:
solaris
Posts: 18
Joined: Thu 17 May, 2012 10:38
Has thanked: 3 times

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

Post by solaris »

Ariman wrote:
solaris wrote:Наверное, стоило бы Observer'у выкидывать сообщение об недостающих dll.
С радостью приму код, который находит недостающие dll-ки. :wink:
Честно говоря, я думал, что это базовая функция Windows (когда запускаешь какой-нибудь exe, он ругается на недостающие dll), и у Observer такое сообщение вылезало бы, но из-за цепочки dll оно блокируется где-то в глубине и не доходит до интерфейса FAR'а.
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 »

solaris wrote:Честно говоря, я думал, что это базовая функция Windows (когда запускаешь какой-нибудь exe, он ругается на недостающие dll), и у Observer такое сообщение вылезало бы, но из-за цепочки dll оно блокируется где-то в глубине и не доходит до интерфейса FAR'а.
Не тот случай. При динамической подгрузке через LoadLibrary сообщения не вываливаются. Можно по коду ошибки определить, что какой-то dll-ки не хватает, но информации какой именно не выдается.
Можно, разве что, показывать сообщения про неподгрузившийся модуль у Observer-а и написать, что у него зависимость не найдена. Но в данном случае, когда не хватает с++ runtime-а, то сообщений будет ровно по количеству модулей, что не очень уж и удобно.
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman wrote:Можно, разве что, показывать сообщения про неподгрузившийся модуль у Observer-а и написать, что у него зависимость не найдена. Но в данном случае, когда не хватает с++ runtime-а, то сообщений будет ровно по количеству модулей, что не очень уж и удобно.
Думаю, есть смысл выводить сообщение, что некоторые модули не удалось загрузить, а полные детали по каждому модулю записать в лог. Ну и в выведенном сообщении желательно намекнуть про этот лог; впрочем, идеально было бы прямо из диалога с ошибкой по нажатию кнопки открыть этот лог в редакторе в нужной позиции (но это так, мечтания).
Фар есть инструмент, а не нянька. © 2009 DrKnS
solaris
Posts: 18
Joined: Thu 17 May, 2012 10:38
Has thanked: 3 times

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

Post by solaris »

Ariman wrote:При динамической подгрузке через LoadLibrary сообщения не вываливаются. Можно по коду ошибки определить, что какой-то dll-ки не хватает, но информации какой именно не выдается.
Тогда можно поступить по-другому - написать в документации список необходимых dll.
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 »

HaRT wrote:Думаю, есть смысл выводить сообщение, что некоторые модули не удалось загрузить, а полные детали по каждому модулю записать в лог.
Сообщение можно и прикрутить, не проблема. А деталей много не наберется, можно лишь выводить код ошибки в дополнение к имени модуля. Другой информации система не предоставляет.
solaris wrote:Тогда можно поступить по-другому - написать в документации список необходимых dll.
Да, тут косячок есть небольшой. Забыл обновить в доке, что теперь нужен с++ рантайм 2010, а не 2008 как раньше.
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman wrote:Сообщение можно и прикрутить, не проблема. А деталей много не наберется, можно лишь выводить код ошибки в дополнение к имени модуля. Другой информации система не предоставляет.
Так много и не надо — лишь бы было понятно, где посмотреть и куда копать.
Фар есть инструмент, а не нянька. © 2009 DrKnS
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

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

Post by tstr »

а не лучше сделать коллбек на луа функцию, а там пользователь её сам обработает - в лог ли запишет или сообщение отдаст...?
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 »

tstr wrote:а не лучше сделать коллбек на луа функцию, а там пользователь её сам обработает - в лог ли запишет или сообщение отдаст...?
Это какое-то сильное шаманство получится. Пользователям придется разбираться с луа и т.п.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

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

Post by tstr »

если будет "из-коробки" скрипт-пример, то разобраться будет не сложнее чем с недостающими библиотеками для модулей.
а если на каждый чих будет сообщения от модулей - не будет ли слишком сложно их подавить?
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

tstr wrote:если на каждый чих будет сообщения от модулей - не будет ли слишком сложно их подавить?
Если я правильно понимаю, сообщений будет не больше, чем по одному от модуля за сеанс ФАРа — это если не хватает чего-то фундаментального и пытаешься открывать файлы разнообразных форматов. Притом при правильной реализации при попытке открытия одного файла будет не более одного подобного сообщения.
Фар есть инструмент, а не нянька. © 2009 DrKnS
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 »

Сообщения будут при загрузке плагина, в случае, если модуль не подгрузился какой (пока ещё не решил, то ли от каждого модуля свое, то ли все сразу пачкой выдать в одном сообщении). Проблема ж была, что модули не активируются, а об этом никто не сообщает.
Post Reply

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