Архив: Технология создания плагинов
Re: Технология создания плагинов
Мне правда никто не сможет помочь?
http://www.commfort.com/ru/forum/viewto ... 607#p48607
Мне очень надо
http://www.commfort.com/ru/forum/viewto ... 607#p48607
Мне очень надо
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
— Martin Golding
Re: Технология создания плагинов
Данным запросом я пока не пользовался, но то что виртуальный пользователь вообще должен быть подключён к чату это точно на 99%. Формат сообщения я так понял, исправили и он теперь полностью соответствует описанному в документации. Но сегодня я его точно буду использовать, о результатах отпишусь.ОреЛ писал(а):Мне правда никто не сможет помочь?
http://www.commfort.com/ru/forum/viewto ... 607#p48607
Мне очень надо
Re: Технология создания плагинов
Указывать надо не количество байт а количество символов.ОреЛ писал(а): int size = VirtualUser.Length() * 2 + 4;
int len = VirtualUser.Length() * 2;
BYTE * bOutBuffer = new BYTE[size];
memcpy(bOutBuffer, &len, 4);
memcpy(bOutBuffer + 4, VirtualUser.c_str(), len * 2);
int dwInBufferSize = (*CommFortGetData)(dwPluginID, 1080, 0, 0, bOutBuffer, size);
BYTE * bInBuffer = new BYTE[dwInBufferSize];
(*CommFortGetData)(dwPluginID, 1080, bInBuffer, dwInBufferSize, bOutBuffer, size);
int countChannels;
memcpy(&countChannels, bInBuffer, 4);
Re: Технология создания плагинов
О чем вы? Сначала копируется 4 байт, содержащее количество символов в текста, потом копируется сам текст.@serg@ писал(а):Указывать надо не количество байт а количество символов.
Жду еще комментариев.
Последний раз редактировалось ОреЛ 20:05, 20.11.2010, всего редактировалось 1 раз.
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
— Martin Golding
Re: Технология создания плагинов
Вот именно, нужно количество символов в тексте а не байт.ОреЛ писал(а):О чем вы? Сначала копируется 4 байт, содержащее количество символов в текста, потом копируется сам текст.
Жду еще комментариев.
int len = VirtualUser.Length() * 2
-
- Администратор
- Сообщения: 6869
- Зарегистрирован: 09:56, 27.06.2005
Re: Технология создания плагинов
Оно будет игнорироваться.ОреЛ писал(а):Скажите, что будет, если виртуальный пользователя забанен, например, на отправку сообщений в канал, а он будет пытаться совершить это действие?
Событие о новом объявлении на сервере реализуем. Клиент же получает только дату и время последней публикации.@serg@ писал(а):Maxim Mirgorodsky, очень хотелось-бы видеть событие (серверное), информирующее о появлении нового объявления (хотя бы только с его id). И вообще я немного не понял. на клиентской стороне список объявлений храниться где-то в файле или получается при каждом подключении к серверу? Ведь данные всёравно получаются клиентом при появлении нового объявлении, почемубы получение данных плагином (в событии) не совместить с событие получения данных клиентом, без возможности дополнительного запроса со списком/содержанием.
-
- Администратор
- Сообщения: 6869
- Зарегистрирован: 09:56, 27.06.2005
Re: Технология создания плагинов
Обычными проблемами незащищенной многопоточности. К одной и той же области памяти будет одновременно идти обращение из разных потоков. Как результат - ошибки.ZigZagkms писал(а):Вопрос к разработчикам сервера. Чем грозит использование импортируемых функций в дочерних потоках, и почему?
Re: Технология создания плагинов
Добавьте пожалуйста функцию получения приветствия указанного канала
-
- Администратор
- Сообщения: 6869
- Зарегистрирован: 09:56, 27.06.2005
Re: Технология создания плагинов
Сделаем.
- ~LONSDALE~
- Сообщения: 145
- Зарегистрирован: 14:38, 09.03.2008
- Контактная информация:
Re: Технология создания плагинов
Нечего не получаеться,может что то я упустил. В OnTimer написал следуёщий код:@serg@ писал(а):ну как на дельфи реализовать я не могу подсказать, если работаешь с формами, то там есть специальный компонент, если без форм то постов 10 назад был пример как это реализовать на с++, думаю можно легко переписать под твои нужды.
Код: Выделить всё
procedure TForm1.Timer1Timer(Sender: TObject);
var
bInBuffer : PAnsiChar; aDataToSend : AnsiString;
iReadOffset:integer;
begin
aDataToSend := fTextToAnsiString('user')+
fIntegerToAnsiString(0)+
fTextToAnsiString('main')+
fTextToAnsiString('Всё норм');
CommFortProcess(dwPluginID, 1020, PAnsiChar(aDataToSend), Length(aDataToSend));
end;
вылетают ошибки при наступлении этого события. Что я упустил?
Re: Технология создания плагинов
А где размерности заносимых данных?~LONSDALE~ писал(а): Нечего не получаеться,может что то я упустил. В OnTimer написал следуёщий код:
Код: Выделить всё
procedure TForm1.Timer1Timer(Sender: TObject); var bInBuffer : PAnsiChar; aDataToSend : AnsiString; iReadOffset:integer; begin aDataToSend := fTextToAnsiString('user')+ fIntegerToAnsiString(0)+ fTextToAnsiString('main')+ fTextToAnsiString('Всё норм'); CommFortProcess(dwPluginID, 1020, PAnsiChar(aDataToSend), Length(aDataToSend)); end;
вылетают ошибки при наступлении этого события. Что я упустил?
- ~LONSDALE~
- Сообщения: 145
- Зарегистрирован: 14:38, 09.03.2008
- Контактная информация:
Re: Технология создания плагинов
А что там нужно коннретнее можно?
Кто может помочь с кодом на делфи очень буду благодарен.
Кто может помочь с кодом на делфи очень буду благодарен.
Re: Технология создания плагинов
Данные из документации:~LONSDALE~ писал(а):А что там нужно коннретнее можно?
Кто может помочь с кодом на делфи очень буду благодарен.
Точно не знаю как на дельфи но перед каждой строкой должен быть записан её разер, что-то типоТекстовые данные в кодировке UTF16. Представляют из себя число(количество символов) + сам текст. Каждый символ содержит 2 байта, то есть занимаемая самим текстом память в байтах равна числу символов умноженному на 2.
...+fIntegerToAnsiString(StrLen('main'))+fTextToAnsiString('main')+
fIntegertToAnsiString(StrLen('Всё норм'))+fTextToAnsiString('Всё норм')
какие именно функции есть в дельфи не знаю но на мето выделенных нужно поставить их смысловые аналоги.
Re: Технология создания плагинов
Сделайте пример для DelphiMaxim Mirgorodsky писал(а):Изменения по системе плагинов в клиенте 5.03:
...
Документация по плагинам обновлена.
...
Дополнения для CommFort
Адрес чата: chat.telered.ru
.
Адрес чата: chat.telered.ru
.
Re: Технология создания плагинов
Его же делал SJ. Он полностью идентичен официальному примеру на СИ