Страница 5 из 26

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

Добавлено: 14:09, 18.09.2010
@serg@
Есть предположение о некорректном распознании режима для ID=67.
Если кто может перепроверьте

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

Добавлено: 00:31, 19.09.2010
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);
И плагин почему-то не работает. Не могу понять, почему без функции пользователь создается, а с функцией - нет.

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

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

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

Обращаем внимание, что если канал уже создан, то производится только вход, а значение режима игнорируется.

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

Добавлено: 13:21, 19.09.2010
ZigZagkms
Maxim Mirgorodsky
Приведите пожалуйста пример получение данных от программы например с ID 1081. Когда оба блока данных не нулевое значение. В примере рассматривается случай когда 1 блок данных нулевой. По разному попробовал никак не получается.

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

Добавлено: 14:07, 19.09.2010
KGB
ZigZagkms писал(а):Maxim Mirgorodsky
Приведите пожалуйста пример получение данных от программы например с ID 1081. Когда оба блока данных не нулевое значение. В примере рассматривается случай когда 1 блок данных нулевой. По разному попробовал никак не получается.
Выше (на 3ей странице) я уже привел такой пример (правда, на Delphi). Буфер для отправляемых данных формируется так же, как и для использования в CommfortProcess.

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

Добавлено: 14:14, 19.09.2010
LIT
Уважаемые разработчики плагинов и дополнений!
Огромная просьба делайте так, чтобы эти дополнения могли вести свои логи. Всем будет удобнее отследить какой плагин сбоит. Не знаю на сколько это сложно, т.к. сам не умею программировать.

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

Добавлено: 14:29, 19.09.2010
supermet
Может быть у кого нибудь есть пример работающей функции для создания виртуального пользователя и отправки сообщения в чат из плагина для Commfort 5 на С/C++ ?

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

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

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

Добавлено: 01:39, 20.09.2010
SV
Кто-нибуть пользовался в плагинах sSkinManager в делфи?
Подскажите как его остановить.не как не получаеться при завершении работы плагина остановить его,т.к если его не останавливать то клиент выдаёт ошибку.
Пока не подключин стиль в sSkinManager то всё работает без ошибок,как подключаю так и всё.

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

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

Действительно, ошибка есть. Имя виртуального пользователя отсутствует. Большое спасибо за информацию, будет исправлено.

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

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

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

   Form1.sSkinmanager1.Active:=false;
   FreeAndNil(Form1.FilterGraph1);
   FreeAndNil(Form3);
   FreeAndNil(Form2);
   FreeAndNil(Form1);
А когда выхожу из чата вылетает ошибка.
что не так?

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

Добавлено: 01:45, 21.09.2010
$teelR@t
anonim писал(а):Подскажите мне событие PluginStop происходить когда нажимаешь на кнопку остановить?
Или в обоих случая при нажатии кнопки стоп и закрытия чата?
а самому слабо проверить?
И при закрытии и при нажатии кнопки Остановить и если вызовешь событие остановки плагина.

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

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

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

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

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

Form1.sSkinmanager1.Active:=false;
FreeAndNil(Form1.FilterGraph1);
при выходе из чата будет ошибка?

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

Добавлено: 10:51, 21.09.2010
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,причём когда плагин закрывает коммфорт при закритии коммфорта.

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

Добавлено: 13:26, 21.09.2010
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();
Но ведь это не правильно. Помогите разобраться, в чем проблема?