Архив: Технология создания плагинов
Re: Технология создания плагинов
Есть предположение о некорректном распознании режима для ID=67.
Если кто может перепроверьте
Если кто может перепроверьте
Re: Технология создания плагинов
Взял пример плагина repeater для сервера. Изменил код немного для компилляции в Visual Studio 2010 Express, откомпиллировал, запустил. Работает нормально. Но почему то не работает когда добавил функцию:
Вызываю ее внутри PluginStart :
И плагин почему-то не работает. Не могу понять, почему без функции пользователь создается, а с функцией - нет.
Код: Выделить всё
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());
}
Код: Выделить всё
CreateUser(CommFortProcess, dwPluginID, L"Repeater", L"192.168.0.0", L"kjlg765gfsesw2334609", 0);
Последний раз редактировалось supermet 14:27, 19.09.2010, всего редактировалось 2 раза.
-
- Администратор
- Сообщения: 6886
- Зарегистрирован: 09:56, 27.06.2005
Re: Технология создания плагинов
Посмотрели - вроде нет проблем.@serg@ писал(а):Есть предположение о некорректном распознании режима для ID=67.
Если кто может перепроверьте
Опишите подробнее что именно не получается с режимом.
Обращаем внимание, что если канал уже создан, то производится только вход, а значение режима игнорируется.
-
- Сообщения: 109
- Зарегистрирован: 08:23, 11.12.2008
- Откуда: Комсомольск-на-Амуре
- Контактная информация:
Re: Технология создания плагинов
Maxim Mirgorodsky
Приведите пожалуйста пример получение данных от программы например с ID 1081. Когда оба блока данных не нулевое значение. В примере рассматривается случай когда 1 блок данных нулевой. По разному попробовал никак не получается.
Приведите пожалуйста пример получение данных от программы например с ID 1081. Когда оба блока данных не нулевое значение. В примере рассматривается случай когда 1 блок данных нулевой. По разному попробовал никак не получается.
Забросил, всем спасибо, исходники раздаю кому надо https://github.com/ZigZagkms
-
- Сообщения: 659
- Зарегистрирован: 08:54, 13.07.2010
- Откуда: Чебоксары, Россия
- Контактная информация:
Re: Технология создания плагинов
Выше (на 3ей странице) я уже привел такой пример (правда, на Delphi). Буфер для отправляемых данных формируется так же, как и для использования в CommfortProcess.ZigZagkms писал(а):Maxim Mirgorodsky
Приведите пожалуйста пример получение данных от программы например с ID 1081. Когда оба блока данных не нулевое значение. В примере рассматривается случай когда 1 блок данных нулевой. По разному попробовал никак не получается.
Re: Технология создания плагинов
Уважаемые разработчики плагинов и дополнений!
Огромная просьба делайте так, чтобы эти дополнения могли вести свои логи. Всем будет удобнее отследить какой плагин сбоит. Не знаю на сколько это сложно, т.к. сам не умею программировать.
Огромная просьба делайте так, чтобы эти дополнения могли вести свои логи. Всем будет удобнее отследить какой плагин сбоит. Не знаю на сколько это сложно, т.к. сам не умею программировать.
Re: Технология создания плагинов
Может быть у кого нибудь есть пример работающей функции для создания виртуального пользователя и отправки сообщения в чат из плагина для Commfort 5 на С/C++ ?
Re: Технология создания плагинов
Maxim Mirgorodsky, может ответите что-нибудь по этому посту про ошибку в обработке события 1090 http://commfort.com/ru/forum/viewtopic. ... 177#p45177
Re: Технология создания плагинов
Кто-нибуть пользовался в плагинах sSkinManager в делфи?
Подскажите как его остановить.не как не получаеться при завершении работы плагина остановить его,т.к если его не останавливать то клиент выдаёт ошибку.
Пока не подключин стиль в sSkinManager то всё работает без ошибок,как подключаю так и всё.
Подскажите как его остановить.не как не получаеться при завершении работы плагина остановить его,т.к если его не останавливать то клиент выдаёт ошибку.
Пока не подключин стиль в sSkinManager то всё работает без ошибок,как подключаю так и всё.
- Вложения
-
- Untitled.png
- (39.95 КБ) 79 скачиваний
-
- Администратор
- Сообщения: 6886
- Зарегистрирован: 09:56, 27.06.2005
Re: Технология создания плагинов
Прошу прощения, пропустил это сообщение.$teelR@t писал(а):Maxim Mirgorodsky, может ответите что-нибудь по этому посту про ошибку в обработке события 1090 http://commfort.com/ru/forum/viewtopic. ... 177#p45177
Действительно, ошибка есть. Имя виртуального пользователя отсутствует. Большое спасибо за информацию, будет исправлено.
Re: Технология создания плагинов
Подскажите мне событие PluginStop происходить когда нажимаешь на кнопку остановить?
Или в обоих случаях при нажатии кнопки стоп и закрытия чата?
Если так то когда я останавливаю плагин кнопкой стоп то ошибок нет,останавливаю так:
А когда выхожу из чата вылетает ошибка.
что не так?
Или в обоих случаях при нажатии кнопки стоп и закрытия чата?
Если так то когда я останавливаю плагин кнопкой стоп то ошибок нет,останавливаю так:
Код: Выделить всё
Form1.sSkinmanager1.Active:=false;
FreeAndNil(Form1.FilterGraph1);
FreeAndNil(Form3);
FreeAndNil(Form2);
FreeAndNil(Form1);
что не так?
- Вложения
-
- Untitled.png
- (39.95 КБ) 75 скачиваний
Re: Технология создания плагинов
а самому слабо проверить?anonim писал(а):Подскажите мне событие PluginStop происходить когда нажимаешь на кнопку остановить?
Или в обоих случая при нажатии кнопки стоп и закрытия чата?
И при закрытии и при нажатии кнопки Остановить и если вызовешь событие остановки плагина.
-
- Сообщения: 659
- Зарегистрирован: 08:54, 13.07.2010
- Откуда: Чебоксары, Россия
- Контактная информация:
Re: Технология создания плагинов
Возможно, в тот момент форм уже не существует. Если закомментироватьanonim писал(а): Если так то когда я останавливаю плагин кнопкой стоп то ошибок нет,останавливаю так:А когда выхожу из чата вылетает ошибка.Код: Выделить всё
Form1.sSkinmanager1.Active:=false; FreeAndNil(Form1.FilterGraph1); FreeAndNil(Form3); FreeAndNil(Form2); FreeAndNil(Form1);
что не так?
Код: Выделить всё
Form1.sSkinmanager1.Active:=false;
FreeAndNil(Form1.FilterGraph1);
Re: Технология создания плагинов
Вылетает ошибка, как понию это всё дело в sSkinManager как я и писал в предыдущем посте эта ошибка поевряется когда подружен стиль в sSkinmanager,причём когда плагин закрывает коммфорт при закритии коммфорта.KGB писал(а):Возможно, в тот момент форм уже не существует. Если закомментироватьanonim писал(а): Если так то когда я останавливаю плагин кнопкой стоп то ошибок нет,останавливаю так:А когда выхожу из чата вылетает ошибка.Код: Выделить всё
Form1.sSkinmanager1.Active:=false; FreeAndNil(Form1.FilterGraph1); FreeAndNil(Form3); FreeAndNil(Form2); FreeAndNil(Form1);
что не так?при выходе из чата будет ошибка?Код: Выделить всё
Form1.sSkinmanager1.Active:=false; FreeAndNil(Form1.FilterGraph1);
-
- Сообщения: 109
- Зарегистрирован: 08:23, 11.12.2008
- Откуда: Комсомольск-на-Амуре
- Контактная информация:
Re: Технология создания плагинов
Помогите разобраться пожалуйста.
Имеется серверный плагин (main.cpp), проект в embarcadero rad studio c++ 2010.
Вообщем создаю форму (unit1.cpp), переношу на нее элемент ListBox1.
В файле main.cpp сверху подключаю и объявляю
В PluginStart добавляю:
Далее в PluginShowOptions вызываю форму
Все хорошо работает, но проблема в том что если в каком нибудь месте (в отдельном потоке) в файле main.cpp до открытия формы по кнопке Опции попытаться добавить элемент в список (formOptions->ListBox1->Items->Add) плагин зависает вместе с комфорт сервером.
Нашел временный выход, в PluginStart добавил:
Но ведь это не правильно. Помогите разобраться, в чем проблема?
Имеется серверный плагин (main.cpp), проект в embarcadero rad studio c++ 2010.
Вообщем создаю форму (unit1.cpp), переношу на нее элемент ListBox1.
В файле main.cpp сверху подключаю и объявляю
Код: Выделить всё
#include "Unit1.h"
TForm1* formOptions;
Код: Выделить всё
formOptions = new TForm1(Form1);
Код: Выделить всё
formOptions->ShowModal();
Нашел временный выход, в PluginStart добавил:
Код: Выделить всё
formOptions->Show();
formOptions->Hide();
Забросил, всем спасибо, исходники раздаю кому надо https://github.com/ZigZagkms