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

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

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

Post by buniak_a_h » Thu 03 Aug, 2017 09:57

Здравствуйте.
Перехожу с Far 3 x86 на ту же версию x64. Столкнулся (естественно) с тем, что некоторые плагины не загружаются. Беда в том, что делают они это молча. Есть ли какой-нибудь способ узнать, какие плагины не загрузились (чтобы либо поискать их 64-разрядные аналоги, либо написать заменитель на Lua)?

User avatar
DrKnS
Posts: 4642
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

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

Post by DrKnS » Thu 03 Aug, 2017 10:58

Я не очень понимаю суть вопроса.
Да, способ есть: предполагая, что у вас в папке plugins были только x86 плагины - все, вообще все они не загрузились.

buniak_a_h
Posts: 362
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 39 times
Been thanked: 5 times
Contact:

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

Post by buniak_a_h » Thu 03 Aug, 2017 11:07

DrKnS wrote:
Thu 03 Aug, 2017 10:58
Я не очень понимаю суть вопроса.
Да, способ есть: предполагая, что у вас в папке plugins были только x86 плагины - все, вообще все они не загрузились.
Если бы! Я б не парился. Увы, многие - очень многие - загрузились. Даже совсем старые ASCII-шные, написанные для ФАР 1.74. Из оставшихся некоторые не жалко, а некоторых просто нет на плагринге в 64-разрядном варианте. Ну, для простеньких типа Active-Help я написал макро-заменитель. но хотелось бы получить что-нить типа ЛОГа, в котором было бы указано, удалось загрузить плагин, или нет. Думал, может, есть какой ключ типа /debug для такой ситуации

User avatar
DrKnS
Posts: 4642
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

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

Post by DrKnS » Thu 03 Aug, 2017 11:17

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

Far владеет такой информацией ("это таки плагин, но не та платформа"), но пользователю её не показывает.

buniak_a_h
Posts: 362
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 39 times
Been thanked: 5 times
Contact:

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

Post by buniak_a_h » Thu 03 Aug, 2017 11:29

DrKnS wrote:
Thu 03 Aug, 2017 11:17
Far владеет такой информацией ("это таки плагин, но не та платформа"), но пользователю её не показывает.
На самом деле для загруженных плагинов показывает (не сам - плагин PlugMenu). Причём, некоторые в этом списке видны (серым - недоступные), а некоторые не видны совсем (как будто ФАР даже не распознал, что это - вообще плагин).
Я не сомневался, что хотя бы во время загрузки плагинов эта инфа у ФАРа есть. Возможно, возникают какие-нить эксепшены. Или плагин не проходит проверку типа "28-й байт д.б. #31". Думал, может, есть какой ключ, позволяющий эту инфу получаь (может, и писателям плагинов удобно было бы).
Ну ладно, я так понял, что лезу в "запретное". Буду вручную перебирать. Просто их у меня было штук 50. Долгая история...

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

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

Post by HaRT » Thu 03 Aug, 2017 11:35

buniak_a_h wrote:
Thu 03 Aug, 2017 11:29
Буду вручную перебирать.
Зачем?
Разве нельзя в 32-битном Фаре выполнить far:about, затем в 64-битном, а результаты сравнить?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 4642
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

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

Post by DrKnS » Thu 03 Aug, 2017 11:57

buniak_a_h wrote:
Thu 03 Aug, 2017 11:29
Или плагин не проходит проверку типа "28-й байт д.б. #31"
Именно так.
Хотя, я слегка наврал - фар сначала проверяет битность, а уже потом "плагиновость" dll, так что он знает только то, что эта dll не загружаема, а не что это конкретно - плагин или какая-то его зависимость.

buniak_a_h
Posts: 362
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 39 times
Been thanked: 5 times
Contact:

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

Post by buniak_a_h » Thu 03 Aug, 2017 12:01

HaRT wrote:
Thu 03 Aug, 2017 11:35
buniak_a_h wrote:
Thu 03 Aug, 2017 11:29
Буду вручную перебирать.
Зачем?
Разве нельзя в 32-битном Фаре выполнить far:about, затем в 64-битном, а результаты сравнить?
Ну вот, спасибо. Именно об этом я и спрашивал.
Вопрос закрыт

buniak_a_h
Posts: 362
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 39 times
Been thanked: 5 times
Contact:

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

Post by buniak_a_h » Sun 06 Aug, 2017 03:05

HaRT wrote:
Thu 03 Aug, 2017 11:35
Зачем?
Разве нельзя в 32-битном Фаре выполнить far:about, затем в 64-битном, а результаты сравнить?
А как сохранить вывод этой команды? Что-то в StdOut не выводится; в буфер консоли не помещается... Командой edit:< не перехватывается...

User avatar
John Doe
Бюрократ
Posts: 11395
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

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

Post by John Doe » Sun 06 Aug, 2017 07:00

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 » Wed 09 Aug, 2017 07:41

DrKnS wrote:
Thu 03 Aug, 2017 11:17
(некоторые авторы любят пихать всё в один архив)
Мы не только любим пихать обе версии плагина в один архив но и считаем это правильным. К тому же как показала эта тема это верный мультиплатформенный подход :)

Ленивый
Posts: 46
Joined: Sun 13 Jul, 2008 11:50
Been thanked: 1 time

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

Post by Ленивый » Tue 22 Aug, 2017 16:40

Вот где источник термина - "dll hell" (Надо же не поленился) :mad:

User avatar
bigvax
Posts: 20
Joined: Fri 02 Jun, 2006 17:18
Location: где-то во времени
Has thanked: 1 time
Contact:

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

Post by bigvax » 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. Буду благодарен...
Last edited by bigvax on Fri 01 Sep, 2017 19:42, edited 4 times in total.
Всегда виртуально Ваш, BigVax

buniak_a_h
Posts: 362
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 39 times
Been thanked: 5 times
Contact:

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

Post by buniak_a_h » Fri 01 Sep, 2017 20:59

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. Буду благодарен...
viewtopic.php?f=15&t=10867
  • С помощью *.hlp и *.chrm работает, вроде, нормально (в т.ч. и из модального редактора, если установлен 7-zip).
  • Настройка описана в первом топике. Включает настройку "горячих клавиш" и путей к help-файлам в зависимости от расширения редактируемого файла. Для hlp и chm настраивать пункты "Команда для вызова помощи" и "Параметры команды" настраивать не рекомендую: для chm всё оказалось нетривиально (распаковать, найти, перейти...)
  • В аутентичном плагине была ещё работа со словарями Мюллера - я не делал.
От плагина есть ещё одно отличие, которое я не реализовывал: если для расширения файла указано несколько help-файлов, то при вызове помощи всегда выводится меню. В плагине были две разные клавиши: для вызова с выбором и для вызова последнего

buniak_a_h
Posts: 362
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 39 times
Been thanked: 5 times
Contact:

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

Post by buniak_a_h » Fri 01 Sep, 2017 21:45

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

User avatar
bigvax
Posts: 20
Joined: Fri 02 Jun, 2006 17:18
Location: где-то во времени
Has thanked: 1 time
Contact:

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

Post by bigvax » Fri 01 Sep, 2017 22:30

buniak_a_h,
Большое спасибо!
Пойду пробовать.
Всегда виртуально Ваш, BigVax

Post Reply

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