Хочется разобраться с нуля в этом вопросе. Подскажите где можно почитать и с чего начать писать свой plugin для определенного софта. в виде file.dll file.dll.cfg
определись сначала, как твоя программа будет общаться с плагином, продумай структуру, запросы и ответы. Потом пиши плагин
У программы есть автор, чтобы человека не отвлекать лишний раз, решил "попробовать" разобраться самостоятельно. Программа с плагинами общается 100%, к ней есть несколько плагинов. Как именно общается программа с плагинами, поинтересуюсь. в чем заклучается "структура"? запросы впринципе есть, и ответы я знаю какие хочу получить от плагина. Какими программами стоит вооружиться?
ну структура запроса. Вот работает программа. Что-то вдруг произошло (пользователь нажал на кнопочку, свернули окошко, что-то где-то ввели и т.д.). Как программа об этом сообщает каждому плагину? Какую функцию в плагине вызывает, какие параметры передает. Как выглядят эти параметры? Это указатели на структуры или что-то другое? Потом, что ожидает услышать программа от плагина? наверняка ожидается какой-то ответ. То же самое по ответу - его структура, содержание и т.д. Без знания полного протокола общения программы и плагинов у тебя ничего не получится. Все равно придется задалбывать автора то, на чем программируешь, и отладчик. Больше ничего
В целом более-менее проясняется что к чему, спасибо. А есть ли еще литература по данной теме? Знаю что в гугле есть, может кто поточнее направит с чем стоит ознакомиться.
Какая литература? Как писать плагины? Не думаю. Каждый пишет, как ему удобно. Тем более, если софт не твой, то никакая литература тебе не поможет - ты вынужден использовать тот протокол, который есть в программе
prozs Архитектура ПО построенное на плагинах можно сравнить с "отделом", где есть "руководитель" и "подчиненные". Грубо говоря, руководитель это приложение, плагины это подчиненные. Плагин, это способ сказать "вот я новый подчиненный, я могу делать .... если вдруг произойдет .... то давай я это сделаю по уму и быстро" и только! Вероятно руководитель делит подчиненных на виды, ктото секретарша, ктото программист, а ктото менеджер по чему-нить там! В программе основанной на плагинах точно также. Программа может делить плагины на типы, к примеру в случае тотал-коммандера это "файловый", "архивный", "контентный" и др. К примеру у всех торчит функция Init() куда передается структура говорящая плагину информацию о приложении, а дальше к примеру для каждого типа плагина свои специфичные к примеру FileTypeProcess(), ArchiveTypeProcess(). Возникают вопросы: 1) какой должен быть код? (мультитрэдность к примеру) 2) какую информацию нужно предоставить приложению? 3) какую информацию мы можем получить от приложения? 4) как информировать приложении о проделанной работе? Возникшей ошибки? Аварийном АХТУНГЕ ? 5) Как приложение нам сообщает что чтото там произошло? Какие виды событий и нотификаций? 6) Не маловажный пункт и "если накладывают протектор или еще чтото, то как это может коснуться мой плагин?" вопросов не мало, лучше всего представить что ты подчиненный(плагин) и тебе нужно работать с руководителем(приложением) как все это происходит?
EvilsInterrupt Очень все четко друг расписал. Принцип работы я поидее понимаю, но сделать его не так-то просто без углубления, при том что еще и не сталкивался с такими вещами, еще конечно же с автором буду общаться, а тут для себя выводы делаю. нет-нет вопросы буду задавать по мере углубления по теме. Спасибо за понимание и ответы.