Лирическое введение в плагины

Вот скажи мне американец, в чём сила?
В деньгах, говоришь?
Вот и брат мне говорит, что в деньгах.
А сила... она в плагинах

Итак, плагины. Многим может показаться пошлым, неповоротливым, зажравшимся - но это факт: к FAR Manager сейчас существует больше сотни плагинов всевозможных мастей - от тетриса до почтовых клиентов. Это на первый взгляд странное явление довольно просто объяснить - каждый хочет того, чего ему надо - и не ждет когда это сделает кто-нибудь со стороны.

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

Сама идея плагинов позволяет настраивать оболочку под себя, добавляя нужное и выкидывая лишнее. Это и есть самое главное преимущество FAR Manager перед монолитными созданиями.

Итак, что же нужно, чтобы воплотить свою гениальную (не сомневаемся) идею? Ответ прост - надо быть программистом. Как не прискорбно для некоторых личностей, но без этого не обойдешься. Сейчас существуют интерфейсы для написания плагинов на C/C++ (сам FAR написан на C++, если интересно), Delphi и "зачатки" к языку Assembler (кстати, есть плагины, написанные на Modula, Ada и C--), но вы можете выбрать и любой другой язык, главное, чтобы ваш компилятор умел создавать dll под windows. В некоторых случаях вы столкнетесь с кучей дополнительных деталей и подробностей - о них вы сможете почитать в специальных разделах.

FAR рассматривает все DLL-модули во всех подкаталогах каталога Plugins как плагины, так что если ваш плагин использует собственные DLL-ки, то они должны иметь другое расширение. Плагин фактически - обычная библиотека, которая выполняется в контексте консольного процесса - так что ваш плагин может делать все (ну или почти все), что может делать обычное консольное Win32 приложение. Хотя, из соображений совместимости плагин не должен выводить текст непосредственно на экран, для этого необходимо использовать функцию Text из сервиса FAR Manager.

Смотрите также:
Обзор возможностей подключаемых модулей, Экспортируемые функции, Сервисные функции, Структуры, Поддержка архивов