Технология создания плагинов и программ-дополнений

Здесь обсуждаются графические оболочки, боты, языковые файлы и другие дополнения к CommFort 4.
Maxim Mirgorodsky
Администратор
Сообщения: 6731
Зарегистрирован: 09:56, 27.06.2005
Благодарил (а): 1 раз

Технология создания плагинов и программ-дополнений

Сообщение Maxim Mirgorodsky » 13:40, 31.07.2008

В данной теме просьба обсуждать только вопросы, касающиеся технических моментов в создании плагинов либо программ-дополнений к CommFort 4.хх. Все другие сообщения будут сразу же удаляться.
Последний раз редактировалось Maxim Mirgorodsky 13:52, 31.07.2008, всего редактировалось 1 раз.

Maxim Mirgorodsky
Администратор
Сообщения: 6731
Зарегистрирован: 09:56, 27.06.2005
Благодарил (а): 1 раз

Сообщение Maxim Mirgorodsky » 13:50, 31.07.2008

Дополнения для CommFort 4 делятся на 3 части:

1 Плагины для клиента CommFort.
2 Плагины для сервера CommFort.
3 Программы-дополнения для клиента CommFort.

Информация, необходимая для создания плагинов: http://www.commfort.com/download/commfort_plugins_doc_ru.zip
Информация, необходимая для создания программ-дополнений: http://www.commfort.com/tmp/commfort_addons_information.zip

В данных архивах содержится документация, а так же примеры плагинов к клиенту и серверу выполненные в CodeGear C++ Builder 2009.

Аватара пользователя
~LONSDALE~
Сообщения: 145
Зарегистрирован: 14:38, 09.03.2008
Контактная информация:

Сообщение ~LONSDALE~ » 06:11, 20.08.2008

Maxim Mirgorodsky писал(а):Информация о технических аспектах создания плагинов к серверу и исходный код простого плагина на C++ Builder 2006 снабженный комментариями на русском языке: http://www.commfort.com/tmp/plugins_400_information.rar

А к 4.02 подойдёт? :)

Maxim Mirgorodsky
Администратор
Сообщения: 6731
Зарегистрирован: 09:56, 27.06.2005
Благодарил (а): 1 раз

Сообщение Maxim Mirgorodsky » 06:57, 20.08.2008

Да.

maza
Сообщения: 36
Зарегистрирован: 19:46, 17.08.2008

Сообщение maza » 00:11, 22.08.2008

Обьясните, пожалуйста, как написать плагин для регистрации в чате через домен?
:( тоесть по сетевым никам))

realmagus
Сообщения: 73
Зарегистрирован: 02:50, 16.03.2008

Сообщение realmagus » 16:47, 22.08.2008

maza писал(а):Обьясните, пожалуйста, как написать плагин для регистрации в чате через домен?
:( тоесть по сетевым никам))


Никак, но можно написать синхронизатор базы пользователей комфорта с базой данных или автоматическую апрувалку акаунтов, с проверкой в базе данных. НО, так как пароль пользователя не передаёться дополнению, то сделать модуль аутентификации нельзя.

realmagus
Сообщения: 73
Зарегистрирован: 02:50, 16.03.2008

Сообщение realmagus » 19:20, 23.08.2008

Разработчики, нужна ваша помощь.

Пробую написать плагин на делфи, инициализация проходит(как-бы). В логе появляэться сообщние "подозрение на атаку (тип 224 - N/A)" и при отправке любого сообщение плагином "Error in plugin '%V1%'. Plugin is disactivated." В списке пользователей юзер плагина не появляеться :(

Update:

Информация про плагин терерь считываеться коректно, но сообщения серверу так и не доходят и юзера в списке нету(учётку я такую сделал).
Сервер в лог пишет "ошибка приложения: "Main recursion" "

Update 2

Проблеммы скорее всего вызванны другой структурой типов(в памяти) в Делфи, разборки продолжаються..

Собственоо в чём просьба: напишите лоадер(на с++), который бы подключал длл, и давал возможность отослать возможные команды + посмотреть что ответил плагин, то дебажить не возможно.

Maxim Mirgorodsky
Администратор
Сообщения: 6731
Зарегистрирован: 09:56, 27.06.2005
Благодарил (а): 1 раз

Сообщение Maxim Mirgorodsky » 11:34, 27.08.2008

realmagus

Пробую написать плагин на делфи, инициализация проходит(как-бы). В логе появляэться сообщние "подозрение на атаку (тип 224 - N/A)" и при отправке любого сообщение плагином "Error in plugin '%V1%'. Plugin is disactivated." В списке пользователей юзер плагина не появляеться

Это значит что в имени пользователя используются запрещенные символы, либо первый символ относится к знакам. Попробуйте более простое имя (состоящее из латинских символов).

Собственоо в чём просьба: напишите лоадер(на с++), который бы подключал длл, и давал возможность отослать возможные команды + посмотреть что ответил плагин, то дебажить не возможно.

Непростая работа, подумаем над этим.

realmagus
Сообщения: 73
Зарегистрирован: 02:50, 16.03.2008

Сообщение realmagus » 12:43, 27.08.2008

Собственно, лоадер я уже написал сам(простенький,только на инициализацию).

Плагин допилял, теперь он возвращает значения точно так же как и плагин-пример, но в отличии от оного мой плагин заглушка не проходит инициализации(все значения и структуры возвращаются как в примере, резулт=0), то есть виртуальный юзер не появляется.

Не могли бы вы рассказать подробно, как проходит инициализация в самой программе, может можно как-то увеличить количество сообщений о плагинах в логах?

Вопросы по С (ибо его я знаю только с универа):

1) Это что? Массив, указатель на массив?

Код: Выделить всё

 BYTE * bMessage 

2) Зачем нам эта процедура, ведь этот каллбек мы так и не используем?

Код: Выделить всё

typedef BOOL __stdcall (*typePremoderation)(DWORD dwMessageID, BYTE * bMessage, DWORD * dwMessageLength);



PS: Прийду домой выложу, то что написал. Но уже могу сказать что калбек функция у меня так и не заработала в делфи(собственно, подозрение на неверное описание аргументов).

Maxim Mirgorodsky
Администратор
Сообщения: 6731
Зарегистрирован: 09:56, 27.06.2005
Благодарил (а): 1 раз

Сообщение Maxim Mirgorodsky » 13:24, 27.08.2008

1) Это что? Массив, указатель на массив?

Указатель на массив.

2) Зачем нам эта процедура, ведь этот каллбек мы так и не используем?

Забыли убрать данное объявление функции. Сейчас убрали, исходный код обновлен (единственное изменение - удалена эта ненужная строчка).

но в отличии от оного мой плагин заглушка не проходит инициализации(все значения и структуры возвращаются как в примере, резулт=0), то есть виртуальный юзер не появляется.

PS: Прийду домой выложу, то что написал. Но уже могу сказать что калбек функция у меня так и не заработала в делфи(собственно, подозрение на неверное описание аргументов).


Выложите сам плагин, посмотрим (лучше с исходным кодом).

ququ_
Сообщения: 22
Зарегистрирован: 12:56, 24.07.2008

Сообщение ququ_ » 13:30, 27.08.2008

Maxim Mirgorodsky писал(а):http://www.commfort.com/tmp/plugins_400_information.rar[/url]


Может будет возможность переписать Null плагин на дельфи.
Потому что многие пишут на этом языке.

realmagus
Сообщения: 73
Зарегистрирован: 02:50, 16.03.2008

Сообщение realmagus » 14:05, 27.08.2008

ququ_ писал(а):
Maxim Mirgorodsky писал(а):http://www.commfort.com/tmp/plugins_400_information.rar[/url]


Может будет возможность переписать Null плагин на дельфи.
Потому что многие пишут на этом языке.


Чем, я собственно и занимаюсь. Если это сделают разработчики, то им мега респект.

realmagus
Сообщения: 73
Зарегистрирован: 02:50, 16.03.2008

Сообщение realmagus » 23:24, 27.08.2008

http://ifolder.ru/7883614 -- plugin
http://ifolder.ru/7883610 -- dll loader

Для всех: делфи нулл-плагин не работает, если знаете в чём дело, то поделитесь со мной. Лоадер как бы работает, но без положительного ответа разработчиков, считать его неработоспособным. (больше не актуально)

UPDATE:
1. Меня сильно проглючило.... в делфи плагине для всех функций надо юзать stdcall тогда плагин загружаеться.
2. Callback так и не запахал :-(

UPDATE2:
1. Всё таки я не такой тупой...теперь всё работает, немного почищу код и выложу.

UPDATE3:
1. Линки обновил.
1. Код почистил, всё должно работать. Прошу администрацию проверить.

Код кривой и не красивый, ногами не копать.

sonic
Сообщения: 43
Зарегистрирован: 01:14, 05.12.2007

Сообщение sonic » 04:24, 28.08.2008

Вот написал небольшой пример плагинчика на делфи:
http://dump.ru/file_catalog/1025062

realmagus
Сообщения: 73
Зарегистрирован: 02:50, 16.03.2008

Re:

Сообщение realmagus » 13:43, 28.08.2008

sonic писал(а):Вот написал небольшой пример плагинчика на делфи:
http://dump.ru/file_catalog/1025062


Красиво :-)

Есть 1 замечание: в интернете пишут что BOOL=LongBool, а не boolean.

Закрыто