Страница 16 из 26
					
				Re: Технология создания плагинов
				Добавлено: 13:50, 20.11.2010
				 ОреЛ
				
			 
			
					
				Re: Технология создания плагинов
				Добавлено: 14:03, 20.11.2010
				 @serg@
				Данным запросом я пока не пользовался, но то что виртуальный пользователь вообще должен быть подключён к чату это точно на 99%. Формат сообщения я так понял, исправили и он теперь полностью соответствует описанному в документации. Но сегодня я его точно буду использовать, о результатах отпишусь.
 
			
					
				Re: Технология создания плагинов
				Добавлено: 15:20, 20.11.2010
				 @serg@
				ОреЛ писал(а):	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: Технология создания плагинов
				Добавлено: 15:55, 20.11.2010
				 ОреЛ
				@serg@ писал(а):Указывать надо не количество байт а количество символов.
О чем вы? Сначала копируется 4 байт, содержащее количество символов в текста, потом копируется сам текст. 
Жду еще комментариев.
 
			
					
				Re: Технология создания плагинов
				Добавлено: 16:07, 20.11.2010
				 @serg@
				ОреЛ писал(а):О чем вы? Сначала копируется 4 байт, содержащее количество символов в текста, потом копируется сам текст. 
Жду еще комментариев.
Вот именно, нужно количество символов в тексте а не байт.
int len = VirtualUser.Length() * 2
 
			
					
				Re: Технология создания плагинов
				Добавлено: 09:11, 23.11.2010
				 Maxim Mirgorodsky
				ОреЛ писал(а):Скажите, что будет, если виртуальный пользователя забанен, например, на отправку сообщений в канал, а он будет пытаться совершить это действие?
Оно будет игнорироваться.
@serg@ писал(а):Maxim Mirgorodsky, очень хотелось-бы видеть событие (серверное), информирующее о появлении нового объявления (хотя бы только с его id). И вообще я немного не понял. на клиентской стороне список объявлений храниться где-то в файле или получается при каждом подключении к серверу? Ведь данные всёравно получаются клиентом при появлении нового объявлении, почемубы получение данных плагином (в событии) не совместить с событие получения данных клиентом, без возможности  дополнительного запроса со списком/содержанием.
Событие о новом объявлении на сервере реализуем. Клиент же получает только дату и время последней публикации.
 
			
					
				Re: Технология создания плагинов
				Добавлено: 09:20, 23.11.2010
				 Maxim Mirgorodsky
				ZigZagkms писал(а):Вопрос к разработчикам сервера. Чем грозит использование импортируемых функций в дочерних потоках, и почему?
Обычными проблемами незащищенной многопоточности. К одной и той же области памяти будет одновременно идти обращение из разных потоков. Как результат - ошибки.
 
			
					
				Re: Технология создания плагинов
				Добавлено: 04:02, 24.11.2010
				 $teelR@t
				Добавьте пожалуйста функцию получения приветствия указанного канала 

 
			
					
				Re: Технология создания плагинов
				Добавлено: 07:55, 24.11.2010
				 Maxim Mirgorodsky
				Сделаем.
			 
			
					
				Re: Технология создания плагинов
				Добавлено: 01:16, 25.11.2010
				 ~LONSDALE~
				@serg@ писал(а):ну как на дельфи реализовать я не могу подсказать, если работаешь с формами, то там есть специальный компонент, если без форм то постов 10 назад был пример как это реализовать на с++, думаю можно легко переписать под твои нужды.
Нечего не получаеться,может что то я упустил. В 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;
вылетают ошибки при наступлении этого события. Что я упустил?
 
			
					
				Re: Технология создания плагинов
				Добавлено: 06:55, 25.11.2010
				 @serg@
				~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;
вылетают ошибки при наступлении этого события. Что я упустил?
 
А где размерности заносимых данных?
 
			
					
				Re: Технология создания плагинов
				Добавлено: 00:20, 26.11.2010
				 ~LONSDALE~
				А что там нужно коннретнее можно?
Кто может помочь с кодом на делфи очень буду благодарен.
			 
			
					
				Re: Технология создания плагинов
				Добавлено: 00:35, 26.11.2010
				 @serg@
				~LONSDALE~ писал(а):А что там нужно коннретнее можно?
Кто может помочь с кодом на делфи очень буду благодарен.
Данные из документации:
Текстовые данные в кодировке UTF16. Представляют из себя число(количество символов) + сам текст. Каждый символ содержит 2 байта, то есть занимаемая самим текстом память в байтах равна числу символов умноженному на 2.
Точно не знаю как на дельфи но перед каждой строкой должен быть записан её разер, что-то типо
...+fIntegerToAnsiString(StrLen('main'))+fTextToAnsiString('main')+
    fIntegertToAnsiString(StrLen('Всё норм'))+fTextToAnsiString('Всё норм')
 
какие именно функции есть в дельфи не знаю но на мето выделенных нужно поставить их смысловые аналоги.
 
			
					
				Re: Технология создания плагинов
				Добавлено: 10:35, 26.11.2010
				 dv
				Maxim Mirgorodsky писал(а):Изменения по системе плагинов в клиенте 5.03:
...
Документация по плагинам обновлена.
...
Сделайте пример для Delphi
 
			
					
				Re: Технология создания плагинов
				Добавлено: 13:35, 28.11.2010
				 Cilvay
				Его же делал SJ. Он полностью идентичен официальному примеру на СИ