Переход на x64 - совместимость плагинов

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Переход на x64 - совместимость плагинов

Post by buniak_a_h »

Здравствуйте.
Перехожу с Far 3 x86 на ту же версию x64. Столкнулся (естественно) с тем, что некоторые плагины не загружаются. Беда в том, что делают они это молча. Есть ли какой-нибудь способ узнать, какие плагины не загрузились (чтобы либо поискать их 64-разрядные аналоги, либо написать заменитель на Lua)?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Переход на x64 - совместимость плагинов

Post by DrKnS »

Я не очень понимаю суть вопроса.
Да, способ есть: предполагая, что у вас в папке plugins были только x86 плагины - все, вообще все они не загрузились.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Переход на x64 - совместимость плагинов

Post by buniak_a_h »

DrKnS wrote: Thu 03 Aug, 2017 10:58Я не очень понимаю суть вопроса.
Да, способ есть: предполагая, что у вас в папке plugins были только x86 плагины - все, вообще все они не загрузились.
Если бы! Я б не парился. Увы, многие - очень многие - загрузились. Даже совсем старые ASCII-шные, написанные для ФАР 1.74. Из оставшихся некоторые не жалко, а некоторых просто нет на плагринге в 64-разрядном варианте. Ну, для простеньких типа Active-Help я написал макро-заменитель. но хотелось бы получить что-нить типа ЛОГа, в котором было бы указано, удалось загрузить плагин, или нет. Думал, может, есть какой ключ типа /debug для такой ситуации
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Переход на x64 - совместимость плагинов

Post by DrKnS »

Если что-то загрузилось - значит у вас было месиво из разных битностей в одной папке (некоторые авторы любят пихать всё в один архив).
В этом случае пройдитесь по папкам вручную: там, где 2 dll и больше, 64 скорее всего есть, там, где одна - скорее всего, только x86.

Far владеет такой информацией ("это таки плагин, но не та платформа"), но пользователю её не показывает.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Переход на x64 - совместимость плагинов

Post by buniak_a_h »

DrKnS wrote: Thu 03 Aug, 2017 11:17Far владеет такой информацией ("это таки плагин, но не та платформа"), но пользователю её не показывает.
На самом деле для загруженных плагинов показывает (не сам - плагин PlugMenu). Причём, некоторые в этом списке видны (серым - недоступные), а некоторые не видны совсем (как будто ФАР даже не распознал, что это - вообще плагин).
Я не сомневался, что хотя бы во время загрузки плагинов эта инфа у ФАРа есть. Возможно, возникают какие-нить эксепшены. Или плагин не проходит проверку типа "28-й байт д.б. #31". Думал, может, есть какой ключ, позволяющий эту инфу получаь (может, и писателям плагинов удобно было бы).
Ну ладно, я так понял, что лезу в "запретное". Буду вручную перебирать. Просто их у меня было штук 50. Долгая история...
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Переход на x64 - совместимость плагинов

Post by HaRT »

buniak_a_h wrote: Thu 03 Aug, 2017 11:29Буду вручную перебирать.
Зачем?
Разве нельзя в 32-битном Фаре выполнить far:about, затем в 64-битном, а результаты сравнить?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Переход на x64 - совместимость плагинов

Post by DrKnS »

buniak_a_h wrote: Thu 03 Aug, 2017 11:29Или плагин не проходит проверку типа "28-й байт д.б. #31"
Именно так.
Хотя, я слегка наврал - фар сначала проверяет битность, а уже потом "плагиновость" dll, так что он знает только то, что эта dll не загружаема, а не что это конкретно - плагин или какая-то его зависимость.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Переход на x64 - совместимость плагинов

Post by buniak_a_h »

HaRT wrote: Thu 03 Aug, 2017 11:35
buniak_a_h wrote: Thu 03 Aug, 2017 11:29Буду вручную перебирать.
Зачем?
Разве нельзя в 32-битном Фаре выполнить far:about, затем в 64-битном, а результаты сравнить?
Ну вот, спасибо. Именно об этом я и спрашивал.
Вопрос закрыт
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Переход на x64 - совместимость плагинов

Post by buniak_a_h »

HaRT wrote: Thu 03 Aug, 2017 11:35Зачем?
Разве нельзя в 32-битном Фаре выполнить far:about, затем в 64-битном, а результаты сравнить?
А как сохранить вывод этой команды? Что-то в StdOut не выводится; в буфер консоли не помещается... Командой edit:< не перехватывается...
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Переход на x64 - совместимость плагинов

Post by John Doe »

buniak_a_h wrote: Sun 06 Aug, 2017 03:05в буфер консоли не помещается
Увеличить буфер
User avatar
GrAnD
Posts: 351
Joined: Thu 13 Oct, 2005 23:47
Location: Amsterdam
Been thanked: 3 times
Contact:

Переход на x64 - совместимость плагинов

Post by GrAnD »

DrKnS wrote: Thu 03 Aug, 2017 11:17(некоторые авторы любят пихать всё в один архив)
Мы не только любим пихать обе версии плагина в один архив но и считаем это правильным. К тому же как показала эта тема это верный мультиплатформенный подход :)
Ленивый
Posts: 55
Joined: Sun 13 Jul, 2008 11:50
Been thanked: 1 time

Переход на x64 - совместимость плагинов

Post by Ленивый »

Вот где источник термина - "dll hell" (Надо же не поленился) :mad:
User avatar
bigvax
Posts: 28
Joined: Fri 02 Jun, 2006 17:18
Location: где-то во времени
Has thanked: 3 times
Been thanked: 1 time
Contact:

Переход на x64 - совместимость плагинов

Post by bigvax »

buniak_a_h wrote: Thu 03 Aug, 2017 11:07 Ну, для простеньких типа Active-Help я написал макро-заменитель.
А можно, вот с этого места поподробнее...
А то очень хочется замену Active-Help для x64.
Пробовал сам сделать, но как оказалось - LUA это как-то не мое... ;)
В принципе, достаточно только для .chm - остальным не пользуюсь...

PS. Sorry, за оффтопик...
PPS. Буду благодарен...
Last edited by bigvax on Fri 01 Sep, 2017 19:42, edited 4 times in total.
Всегда виртуально Ваш, BigVax
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Переход на x64 - совместимость плагинов

Post by buniak_a_h »

bigvax wrote: Fri 01 Sep, 2017 19:35
buniak_a_h wrote: Thu 03 Aug, 2017 11:07 Ну, для простеньких типа Active-Help я написал макро-заменитель.
А можно, вот с этого места поподробнее...
А то очень хочется замену Active-Help для x64.
Пробовал сам сделать, но как оказалось - LUA это как-то не мое... ;)
В принципе, достаточно только для .chm - остальным не пользуюсь...

PS. Sorry, за оффтопик...
PPS. Буду благодарен...
http://forum.farmanager.com/viewtopic.php?f=15&t=10867
  • С помощью *.hlp и *.chrm работает, вроде, нормально (в т.ч. и из модального редактора, если установлен 7-zip).
  • Настройка описана в первом топике. Включает настройку "горячих клавиш" и путей к help-файлам в зависимости от расширения редактируемого файла. Для hlp и chm настраивать пункты "Команда для вызова помощи" и "Параметры команды" настраивать не рекомендую: для chm всё оказалось нетривиально (распаковать, найти, перейти...)
  • В аутентичном плагине была ещё работа со словарями Мюллера - я не делал.
От плагина есть ещё одно отличие, которое я не реализовывал: если для расширения файла указано несколько help-файлов, то при вызове помощи всегда выводится меню. В плагине были две разные клавиши: для вызова с выбором и для вызова последнего
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Переход на x64 - совместимость плагинов

Post by buniak_a_h »

bigvax, Добавочка: хотя в настройках написано, что указывается маска файла, на самом деле указывается только список расширений в виде *.ext1,*.ext2 ... Когда я писал этот макрос, я ещё не знал про возможность проверки имени файла по списку масок ( far.ProcessName(far.Flags.PN_CMPNAMELIST, <MaskList>, <FileMask>) ). Для моих целей хватало этого (привязка Help-файла к расширению). Теперь я знаю, как сделать более универсально (именно по маске), но пока некогда было. Если надо - напишите, доделаю.
Post Reply

Return to “Нужна помощь”