Страница 21 из 26
Re: Технология создания плагинов
Добавлено: 13:56, 19.12.2010
ОреЛ
Вопрос ко всем, ибо вы намного умнее и опытнее меня:
почему в С++ можно считывать таким образом:
Код: Выделить всё
int len;
memcpy(&len, bInBuffer, 4);
bInBuffer += 4;
UnicodeString User;
User.SetLenght(len);
memcpy(&User.c_str(), bInBuffer, len * 2);
bInBuffer += len * 2;
.........
но нельзя записать так же:
memcpy(bOutBuffer, &len, 4);
bOutBuffer += 4;
memcpy(bOutBuffer, User.c_str(), len * 2);
bOutBuffer += len * 2;
.........
?
Пришлось в цитату заносить второй код, ибо в тегах Code игнорируется цвет(
Re: Технология создания плагинов
Добавлено: 14:10, 19.12.2010
KGB
ОреЛ писал(а):почему в С++ можно считывать таким образом:
Код: Выделить всё
int len;
memcpy(&len, bInBuffer, 4);
bInBuffer += 4;
UnicodeString User;
User.SetLenght(len);
memcpy(&User.c_str(), bInBuffer, len * 2);
bInBuffer += len * 2;
.........
но нельзя записать так же:
memcpy(bOutBuffer, &len, 4);
bOutBuffer += 4;
memcpy(bOutBuffer, User.c_str(), len * 2);
bOutBuffer += len * 2;
.........
?
Указатель останется на последнем добавленном элементе буфера, а не в начале этого буфера, и, поэтому, неправильно передаётся серверу/клиенту чата для обработки:
Сервер/клиент при этом получают:
Изменение
bInBuffer ни на что не влияет, потому что передавать его клиенту/серверу не нужно. Думаю, можно использовать дополнительный указатель, объявленный внутри функции, чтобы не изменять
bOutBuffer.
Re: Технология создания плагинов
Добавлено: 16:53, 19.12.2010
@serg@
Нашел ошибку в системе сообщений серверных плагинов. Инициирование событий:
Создать общий канал или подключиться к уже существующему
ID: 1026
Изменить иконку
ID: 1026
Re: Технология создания плагинов
Добавлено: 07:57, 21.12.2010
Maxim Mirgorodsky
cilvay писал(а):Уважаемые разработчики, нельзя ли сделать чтобы код, выполняющийся в функции PluginProcess был независим от чата и комфорт не ждал пока он выполниться. Если я туда запихну sleep(20000) то чат будет 20 секунд висеть. А как реализовать это без использования многопоточности?
Нельзя, так как это уже и будет многопоточность и защитить ее не представляется возможности (плагин синхронно запрашивает данные у программы).
@serg@ писал(а):Нашел ошибку в системе сообщений серверных плагинов. Инициирование событий:
Создать общий канал или подключиться к уже существующему
ID: 1026
Изменить иконку
ID: 1026
Да, в этой теме уже о ней сообщали. Исправим в следующей версии.
Re: Технология создания плагинов
Добавлено: 11:08, 21.12.2010
@serg@
Maxim Mirgorodsky писал(а):Да, в этой теме уже о ней сообщали. Исправим в следующей версии.
Значит я забыл, что о таковом писали...Прошу прощения за повторение.
Re: Технология создания плагинов
Добавлено: 02:23, 27.12.2010
yaotzin
Maxim Mirgorodsky здравствуйте =) у вас нет случайно примера на C# плагина клиентского ? =)
Re: Технология создания плагинов
Добавлено: 16:39, 27.12.2010
Maxim Mirgorodsky
На C# нет.
Re: Технология создания плагинов
Добавлено: 22:41, 27.12.2010
Zka
Здравствуйте! Я сам ещё ни одного плагина не написал...Понятия не имею, как их писать.

. Можно мне как-то объяснить: как можно скомпилировать проект в Delphi 2007 в *.cflpug если компилирует только в *.exe?
Re: Технология создания плагинов
Добавлено: 23:28, 27.12.2010
KGB
Как я уже говорил, нужно посмотреть пример плагина на Delphi, это поможет. А насчёт разработки DLL - смотрите
тут. Но лучше разберитесь в плагине, многое сразу станет ясно

Re: Технология создания плагинов
Добавлено: 01:24, 28.12.2010
Zka
Спасибо. Скачал плагин (пример плагина (Repeater Plugin). В Delphi прокрутил. Разобрался.
А теперь у меня новый вопрос: а как вставить изображение в пункт "О программе"? Как я не корчал код своими фантазиями ничего нового не было. Можно рассказать как вставить изображение в данной части кодировки (описание раздела "О программе" )
Re: Технология создания плагинов
Добавлено: 15:44, 29.12.2010
minlexx
..... Сервер при этом пишет в логах:
E25 [29.12.2010 2:58:05.358] (10.38.7.84): подозрение на атаку (тип 2248)
... Рано пытаюсь что-то слать в чат ещё до авторизации?) (поиском что-то нашел) но все жё если есть инфа что значит именно этот номер ошибки....

сам понял
Re: Технология создания плагинов
Добавлено: 17:22, 29.12.2010
Cilvay
Действительно, ув. разработчики чата, сделайте пожалуйста какую нить табличку со значениями кодов этих. А то появляются непонятные сообщения типа "подозрения на атаку (тип ххх)" или "Modul 1(xx) is activated" и т.д.
Re: Технология создания плагинов
Добавлено: 18:10, 29.12.2010
Maxim Mirgorodsky
На самом деле это проблема системы плагинов, что она позволяет плагину недопустимые с точки зрения протокола действия. Будет исправлено.
Re: Технология создания плагинов
Добавлено: 17:55, 04.01.2011
SV
Пытаюсь забанить пользователя,но не чего не получается
Код: Выделить всё
aDataToSend := fTextToAnsiString('Repeater')+ //имя виртуального пользователя
fIntegerToAnsiString(0)+ //тип идентификации
fTextToAnsiString(uSenderLogin)+ //объект идентификации
fIntegerToAnsiString(2)+ //тип ограничения
fTextToAnsiString(uChannel)+ //канал ограничения
fIntegerToAnsiString(1)+ //срок
fTextToAnsiString('123')+//Причина
fIntegerToAnsiString(1);//тип анонимности
CommFortProcess(dwPluginID, 1040, PAnsiChar(aDataToSend), Length(aDataToSend))
Что не так?
Re: Технология создания плагинов
Добавлено: 18:38, 04.01.2011
KGB
anonim писал(а):
aDataToSend := fTextToAnsiString('Repeater')+ //имя виртуального пользователя
fIntegerToAnsiString(0)+ //тип идентификации
fTextToAnsiString(uSenderLogin)+ //объект идентификации
fIntegerToAnsiString(2)+ //тип ограничения
fTextToAnsiString(uChannel)+ //канал ограничения
fIntegerToAnsiString(1)+ //срок
fTextToAnsiString('123')+//Причина
fIntegerToAnsiString(1);//тип анонимности
CommFortProcess(dwPluginID, 1040, PAnsiChar(aDataToSend), Length(aDataToSend))
Срок - тип Double, а не целое число. Было
тут