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

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

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

Post by Ariman » Mon 31 Aug, 2009 11:29

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

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

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

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

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


Сторонние модули:
Dir — поддержка вывода команд dir и ls в качестве виртуального архива. (на версии 1.10 работать не будет в связи с изменением API модулей)
Inno Setup - поддержка файлов Inno Setup (сделан на основе innounp).

solaris
Posts: 18
Joined: Thu 17 May, 2012 10:38
Has thanked: 3 times

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

Post by solaris » Wed 29 May, 2013 17:17

Latest post of the previous page:

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

Last edited by solaris on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [code], [spoiler]

User avatar
HaRT
Moderator
Posts: 9114
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 165 times

Post by HaRT » Wed 29 May, 2013 17:26

solaris
Научитесь применять тэги [code] и [spoiler]. Пример — в отредактированном мной Вашем сообщении.
Фар есть инструмент, а не нянька. © 2009 DrKnS

solaris
Posts: 18
Joined: Thu 17 May, 2012 10:38
Has thanked: 3 times

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

Post by solaris » Wed 29 May, 2013 18:25

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

Ariman
Posts: 1252
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 28 times
Contact:

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

Post by Ariman » Wed 29 May, 2013 19:05

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 » Wed 29 May, 2013 19:10

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

Ariman
Posts: 1252
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 28 times
Contact:

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

Post by Ariman » Thu 30 May, 2013 08:16

solaris wrote:Честно говоря, я думал, что это базовая функция Windows (когда запускаешь какой-нибудь exe, он ругается на недостающие dll), и у Observer такое сообщение вылезало бы, но из-за цепочки dll оно блокируется где-то в глубине и не доходит до интерфейса FAR'а.
Не тот случай. При динамической подгрузке через LoadLibrary сообщения не вываливаются. Можно по коду ошибки определить, что какой-то dll-ки не хватает, но информации какой именно не выдается.
Можно, разве что, показывать сообщения про неподгрузившийся модуль у Observer-а и написать, что у него зависимость не найдена. Но в данном случае, когда не хватает с++ runtime-а, то сообщений будет ровно по количеству модулей, что не очень уж и удобно.

User avatar
HaRT
Moderator
Posts: 9114
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 165 times

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

Post by HaRT » Thu 30 May, 2013 10:55

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 » Thu 30 May, 2013 11:01

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

Ariman
Posts: 1252
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 28 times
Contact:

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

Post by Ariman » Thu 30 May, 2013 12:50

HaRT wrote:Думаю, есть смысл выводить сообщение, что некоторые модули не удалось загрузить, а полные детали по каждому модулю записать в лог.
Сообщение можно и прикрутить, не проблема. А деталей много не наберется, можно лишь выводить код ошибки в дополнение к имени модуля. Другой информации система не предоставляет.
solaris wrote:Тогда можно поступить по-другому - написать в документации список необходимых dll.
Да, тут косячок есть небольшой. Забыл обновить в доке, что теперь нужен с++ рантайм 2010, а не 2008 как раньше.

User avatar
HaRT
Moderator
Posts: 9114
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 165 times

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

Post by HaRT » Thu 30 May, 2013 13:45

Ariman wrote:Сообщение можно и прикрутить, не проблема. А деталей много не наберется, можно лишь выводить код ошибки в дополнение к имени модуля. Другой информации система не предоставляет.
Так много и не надо — лишь бы было понятно, где посмотреть и куда копать.
Фар есть инструмент, а не нянька. © 2009 DrKnS

tstr
Posts: 529
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 8 times
Been thanked: 7 times

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

Post by tstr » Thu 30 May, 2013 16:08

а не лучше сделать коллбек на луа функцию, а там пользователь её сам обработает - в лог ли запишет или сообщение отдаст...?

Ariman
Posts: 1252
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 28 times
Contact:

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

Post by Ariman » Fri 31 May, 2013 12:52

tstr wrote:а не лучше сделать коллбек на луа функцию, а там пользователь её сам обработает - в лог ли запишет или сообщение отдаст...?
Это какое-то сильное шаманство получится. Пользователям придется разбираться с луа и т.п.

tstr
Posts: 529
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 8 times
Been thanked: 7 times

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

Post by tstr » Fri 31 May, 2013 14:20

если будет "из-коробки" скрипт-пример, то разобраться будет не сложнее чем с недостающими библиотеками для модулей.
а если на каждый чих будет сообщения от модулей - не будет ли слишком сложно их подавить?

User avatar
HaRT
Moderator
Posts: 9114
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 165 times

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

Post by HaRT » Fri 31 May, 2013 14:54

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

Ariman
Posts: 1252
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 28 times
Contact:

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

Post by Ariman » Fri 31 May, 2013 15:19

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

User avatar
HaRT
Moderator
Posts: 9114
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 165 times

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

Post by HaRT » Fri 31 May, 2013 15:23

Ariman wrote:Сообщения будут при загрузке плагина
Значит ли это, что все модули грузятся при загрузке плагина?
Если да, то правильно ли я понимаю, что это нужно для того, чтобы давать им „обнюхивать” файлы?
Ariman wrote:то ли от каждого модуля свое, то ли все сразу пачкой выдать в одном сообщении
Как я уже писал, предпочтительно при наличии ошибок вывести одно общее краткое сообщение типа “не удалось загрузить M модулей из N, подробности в логе”, а уже в логе расписать отдельно про каждый обломившийся модуль.
Фар есть инструмент, а не нянька. © 2009 DrKnS

tstr
Posts: 529
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 8 times
Been thanked: 7 times

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

Post by tstr » Fri 31 May, 2013 15:27

сообщений будет не больше, чем по одному от модуля за сеанс ФАРа
это будет "просто прекрасно" - увидеть чего, например, недостаёт из локальных дотнетов, а учитывая что попытка подгрузки может быть в любом месте и на любой стадии работы - это не использование фар, а ожидание чего он вдруг захочет срочно сообщить.
пока не будет "информационной области" для немодального вывода диагностики - такие сообщения лишние.

Post Reply

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