32битные плагины в FAR х64?
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: плагин32 в фар3х64
Почему никак?raven428 wrote:32х битные плагины в версии х64 вообще никак не запустить или есть какой-то костыль?
Пишешь 32-битный хост, который:
- загружает 32-битный плагин
- как-то через IPC узнаёт, какие функции из него нужно вызывать
- вызывает нужные функции и отдаёт результат обратно, опять же через IPC.
- предоставляет 32-битному плагину весь необходимый far api, реализуя его самостоятельно или транслируя вызовы через IPC при необходимости.
Пишешь 64-битный плагин или адаптер, который:
- запускает вышеописанный 32-битный хост.
- передаёт по IPC имёна нужных функций, параметры, получает результат
- реализует IPC-обёртку для far api.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: плагин32 в фар3х64
И все равно, с 90% вероятностью работать не будетDrKnS wrote:Почему никак? Пишешь...
- HaRT
- Moderator
- Posts: 10823
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Вопросы по переходу на Far 3.0 (перенос настроек и др.)
DrKnS
Я на досуге размышлял, нельзя ли на заголовочники FAR API натравить MIDL.exe, чтобы он сгенерил proxy/stub, — тогда бы создание описываемой связки несколько упростилось.
А вообще если кто возьмётся, могу в частном порядке поделиться опытом успешной реализации подобного IPC.
Я на досуге размышлял, нельзя ли на заголовочники FAR API натравить MIDL.exe, чтобы он сгенерил proxy/stub, — тогда бы создание описываемой связки несколько упростилось.
А вообще если кто возьмётся, могу в частном порядке поделиться опытом успешной реализации подобного IPC.
Фар есть инструмент, а не нянька. © 2009 DrKnS
-
- Posts: 705
- Joined: Tue 05 Apr, 2005 09:26
- Been thanked: 3 times
- Contact:
Re: Вопросы по переходу на Far 3.0 (перенос настроек и др.)
Если в фаре будет com api для плагинов, то взаимодействие x86 <-> x64 (в любую сторону) можно будет сделать встроенными средствами винды, через com+.
Ы?
-
- Posts: 705
- Joined: Tue 05 Apr, 2005 09:26
- Been thanked: 3 times
- Contact:
Re: Вопросы по переходу на Far 3.0 (перенос настроек и др.)
Правда при большой частоте вызовов out-of-prococess com сервера — это не самый лучший вариант, но всё же…
Ы?
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Вопросы по переходу на Far 3.0 (перенос настроек и др.)
Да не выйдет ничего. Можно подумать, плагины только FAR API пользуются.
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: Вопросы по переходу на Far 3.0 (перенос настроек и др.)
ну с файлами реестром можно тот же трюк применять, что в x86 фаре. а какие ещё проблемы есть?Max Rusov wrote:Да не выйдет ничего. Можно подумать, плагины только FAR API пользуются.
Re: Вопросы по переходу на Far 3.0 (перенос настроек и др.)
изначально вопрос был поднят, потому что есть унаследованные x86 плагины, которые никак не подключить к x64 far. смысла в новодельных x86 плагинах, использующих новопридуманное АПИ для подключения к x64 Far — нет.
Фар делают добрые люди
Re: плагин32 в фар3х64
да много их от того же фар 1.70, в том числе мои, например :)Denis wrote:А что за плагин?raven428 wrote:32х битные плагины в версии х64 вообще никак не запустить или есть какой-то костыль?
too much raVen over paradise...
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Вопросы по переходу на Far 3.0 (перенос настроек и др.)
Консольное API, например. GetStdHandle и иже с ним.zg wrote:ну с файлами реестром можно тот же трюк применять, что в x86 фаре. а какие ещё проблемы есть?Max Rusov wrote:Да не выйдет ничего. Можно подумать, плагины только FAR API пользуются.
- WARP ItSelf
- Самый умный
- Posts: 1011
- Joined: Tue 15 Mar, 2005 23:19
- Contact:
Re: 32битные плагины в FAR х64?
Да не, тут все нормально.
1. Скажем, Far у нас х64.
2. Пишем к нему х64-плагин заглушку.
3. Пишем программу-арбитр х86.
4. Имеем плагин х86.
И понеслась:
1. Far x64 загружает плагин-заглушку.
2. Плагин маршалит данные в программу-арбитр (при вызове GetPluginInfo, например).
3. Программа-арбитр загружает плагин х86 и вызывает что нужно.
4. Программа-арбитр собирает результаты вызова и маршалит их в плагин-заглушку.
Все просто замечательно кроме того, что написать для plugin.hpp это самый маршалинг/демаршалинг это ААА!!!! А plugin.hpp еще и меняется постоянно. Там этот арбитр с заглушкой на полноценный менеджер плагинов потянут.
1. Скажем, Far у нас х64.
2. Пишем к нему х64-плагин заглушку.
3. Пишем программу-арбитр х86.
4. Имеем плагин х86.
И понеслась:
1. Far x64 загружает плагин-заглушку.
2. Плагин маршалит данные в программу-арбитр (при вызове GetPluginInfo, например).
3. Программа-арбитр загружает плагин х86 и вызывает что нужно.
4. Программа-арбитр собирает результаты вызова и маршалит их в плагин-заглушку.
Все просто замечательно кроме того, что написать для plugin.hpp это самый маршалинг/демаршалинг это ААА!!!! А plugin.hpp еще и меняется постоянно. Там этот арбитр с заглушкой на полноценный менеджер плагинов потянут.
Никто не знал, а я...
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: 32битные плагины в FAR х64?
Это, конечно, не просто, но не сильно сложнее чем Far2->Far3 wrapper, только IPC добавить. Но что делать с непредсказуемым множеством функций Win API - мне лично непонятно.WARP ItSelf wrote:...написать для plugin.hpp это самый маршалинг/демаршалинг это ААА!!!!