Архив: Технология создания плагинов

Здесь обсуждаются технические аспекты создания дополнений.
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

Есть предположение о некорректном распознании режима для ID=67.
Если кто может перепроверьте
Аватара пользователя
supermet
Сообщения: 245
Зарегистрирован: 02:35, 19.07.2009

Re: Технология создания плагинов

Сообщение supermet »

Взял пример плагина repeater для сервера. Изменил код немного для компилляции в Visual Studio 2010 Express, откомпиллировал, запустил. Работает нормально. Но почему то не работает когда добавил функцию:

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

void CreateUser(typeCommFortProcess proc, DWORD PlugID, wstring user, wstring ip, wstring pass, DWORD icon)
{
string aDS =  fTextToAnsiString(user)+  //имя
fTextToAnsiString(ip)+ //IP-адрес
fIntegerToAnsiString(0)+  //пароль в открытом виде
fTextToAnsiString(pass)+   //пароль
fIntegerToAnsiString(icon); //иконка
(*proc)(PlugID, 1001, (BYTE*)aDS.c_str(), aDS.length());
}
Вызываю ее внутри PluginStart :

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

CreateUser(CommFortProcess, dwPluginID, L"Repeater", L"192.168.0.0", L"kjlg765gfsesw2334609", 0);
И плагин почему-то не работает. Не могу понять, почему без функции пользователь создается, а с функцией - нет.
Последний раз редактировалось supermet 14:27, 19.09.2010, всего редактировалось 2 раза.
Maxim Mirgorodsky
Администратор
Сообщения: 6877
Зарегистрирован: 09:56, 27.06.2005

Re: Технология создания плагинов

Сообщение Maxim Mirgorodsky »

@serg@ писал(а):Есть предположение о некорректном распознании режима для ID=67.
Если кто может перепроверьте
Посмотрели - вроде нет проблем.

Опишите подробнее что именно не получается с режимом.

Обращаем внимание, что если канал уже создан, то производится только вход, а значение режима игнорируется.
ZigZagkms
Сообщения: 109
Зарегистрирован: 08:23, 11.12.2008
Откуда: Комсомольск-на-Амуре
Контактная информация:

Re: Технология создания плагинов

Сообщение ZigZagkms »

Maxim Mirgorodsky
Приведите пожалуйста пример получение данных от программы например с ID 1081. Когда оба блока данных не нулевое значение. В примере рассматривается случай когда 1 блок данных нулевой. По разному попробовал никак не получается.
Забросил, всем спасибо, исходники раздаю кому надо https://github.com/ZigZagkms
KGB
Сообщения: 659
Зарегистрирован: 08:54, 13.07.2010
Откуда: Чебоксары, Россия
Контактная информация:

Re: Технология создания плагинов

Сообщение KGB »

ZigZagkms писал(а):Maxim Mirgorodsky
Приведите пожалуйста пример получение данных от программы например с ID 1081. Когда оба блока данных не нулевое значение. В примере рассматривается случай когда 1 блок данных нулевой. По разному попробовал никак не получается.
Выше (на 3ей странице) я уже привел такой пример (правда, на Delphi). Буфер для отправляемых данных формируется так же, как и для использования в CommfortProcess.
LIT
Сообщения: 251
Зарегистрирован: 08:32, 28.06.2007

Re: Технология создания плагинов

Сообщение LIT »

Уважаемые разработчики плагинов и дополнений!
Огромная просьба делайте так, чтобы эти дополнения могли вести свои логи. Всем будет удобнее отследить какой плагин сбоит. Не знаю на сколько это сложно, т.к. сам не умею программировать.
Аватара пользователя
supermet
Сообщения: 245
Зарегистрирован: 02:35, 19.07.2009

Re: Технология создания плагинов

Сообщение supermet »

Может быть у кого нибудь есть пример работающей функции для создания виртуального пользователя и отправки сообщения в чат из плагина для Commfort 5 на С/C++ ?
$teelR@t
Сообщения: 348
Зарегистрирован: 19:14, 30.03.2008
Откуда: Украина
Контактная информация:

Re: Технология создания плагинов

Сообщение $teelR@t »

Maxim Mirgorodsky, может ответите что-нибудь по этому посту про ошибку в обработке события 1090 http://commfort.com/ru/forum/viewtopic. ... 177#p45177
Аватара пользователя
SV
Сообщения: 797
Зарегистрирован: 00:11, 06.09.2010
Откуда: Киров

Re: Технология создания плагинов

Сообщение SV »

Кто-нибуть пользовался в плагинах sSkinManager в делфи?
Подскажите как его остановить.не как не получаеться при завершении работы плагина остановить его,т.к если его не останавливать то клиент выдаёт ошибку.
Пока не подключин стиль в sSkinManager то всё работает без ошибок,как подключаю так и всё.
Вложения
Untitled.png
(39.95 КБ) 79 скачиваний
Maxim Mirgorodsky
Администратор
Сообщения: 6877
Зарегистрирован: 09:56, 27.06.2005

Re: Технология создания плагинов

Сообщение Maxim Mirgorodsky »

$teelR@t писал(а):Maxim Mirgorodsky, может ответите что-нибудь по этому посту про ошибку в обработке события 1090 http://commfort.com/ru/forum/viewtopic. ... 177#p45177
Прошу прощения, пропустил это сообщение.

Действительно, ошибка есть. Имя виртуального пользователя отсутствует. Большое спасибо за информацию, будет исправлено.
Аватара пользователя
SV
Сообщения: 797
Зарегистрирован: 00:11, 06.09.2010
Откуда: Киров

Re: Технология создания плагинов

Сообщение SV »

Подскажите мне событие PluginStop происходить когда нажимаешь на кнопку остановить?
Или в обоих случаях при нажатии кнопки стоп и закрытия чата?
Если так то когда я останавливаю плагин кнопкой стоп то ошибок нет,останавливаю так:

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

   Form1.sSkinmanager1.Active:=false;
   FreeAndNil(Form1.FilterGraph1);
   FreeAndNil(Form3);
   FreeAndNil(Form2);
   FreeAndNil(Form1);
А когда выхожу из чата вылетает ошибка.
что не так?
Вложения
Untitled.png
(39.95 КБ) 75 скачиваний
$teelR@t
Сообщения: 348
Зарегистрирован: 19:14, 30.03.2008
Откуда: Украина
Контактная информация:

Re: Технология создания плагинов

Сообщение $teelR@t »

anonim писал(а):Подскажите мне событие PluginStop происходить когда нажимаешь на кнопку остановить?
Или в обоих случая при нажатии кнопки стоп и закрытия чата?
а самому слабо проверить?
И при закрытии и при нажатии кнопки Остановить и если вызовешь событие остановки плагина.
KGB
Сообщения: 659
Зарегистрирован: 08:54, 13.07.2010
Откуда: Чебоксары, Россия
Контактная информация:

Re: Технология создания плагинов

Сообщение KGB »

anonim писал(а): Если так то когда я останавливаю плагин кнопкой стоп то ошибок нет,останавливаю так:

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

   Form1.sSkinmanager1.Active:=false;
   FreeAndNil(Form1.FilterGraph1);
   FreeAndNil(Form3);
   FreeAndNil(Form2);
   FreeAndNil(Form1);
А когда выхожу из чата вылетает ошибка.
что не так?
Возможно, в тот момент форм уже не существует. Если закомментировать

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

Form1.sSkinmanager1.Active:=false;
FreeAndNil(Form1.FilterGraph1);
при выходе из чата будет ошибка?
Аватара пользователя
SV
Сообщения: 797
Зарегистрирован: 00:11, 06.09.2010
Откуда: Киров

Re: Технология создания плагинов

Сообщение SV »

KGB писал(а):
anonim писал(а): Если так то когда я останавливаю плагин кнопкой стоп то ошибок нет,останавливаю так:

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

   Form1.sSkinmanager1.Active:=false;
   FreeAndNil(Form1.FilterGraph1);
   FreeAndNil(Form3);
   FreeAndNil(Form2);
   FreeAndNil(Form1);
А когда выхожу из чата вылетает ошибка.
что не так?
Возможно, в тот момент форм уже не существует. Если закомментировать

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

Form1.sSkinmanager1.Active:=false;
FreeAndNil(Form1.FilterGraph1);
при выходе из чата будет ошибка?
Вылетает ошибка, как понию это всё дело в sSkinManager как я и писал в предыдущем посте эта ошибка поевряется когда подружен стиль в sSkinmanager,причём когда плагин закрывает коммфорт при закритии коммфорта.
ZigZagkms
Сообщения: 109
Зарегистрирован: 08:23, 11.12.2008
Откуда: Комсомольск-на-Амуре
Контактная информация:

Re: Технология создания плагинов

Сообщение ZigZagkms »

Помогите разобраться пожалуйста.
Имеется серверный плагин (main.cpp), проект в embarcadero rad studio c++ 2010.
Вообщем создаю форму (unit1.cpp), переношу на нее элемент ListBox1.

В файле main.cpp сверху подключаю и объявляю

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

#include "Unit1.h"
TForm1* formOptions;
В PluginStart добавляю:

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

formOptions = new TForm1(Form1);
Далее в PluginShowOptions вызываю форму

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

formOptions->ShowModal();
Все хорошо работает, но проблема в том что если в каком нибудь месте (в отдельном потоке) в файле main.cpp до открытия формы по кнопке Опции попытаться добавить элемент в список (formOptions->ListBox1->Items->Add) плагин зависает вместе с комфорт сервером.

Нашел временный выход, в PluginStart добавил:

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

formOptions->Show();
formOptions->Hide();
Но ведь это не правильно. Помогите разобраться, в чем проблема?
Забросил, всем спасибо, исходники раздаю кому надо https://github.com/ZigZagkms
Закрыто