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

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

Добавлено: 16:08, 21.09.2010
KGB
Maxim Mirgorodsky,
Что может привести к

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

[21.09.2010 17:23:55] Ошибка при обработке программой сообщения от плагина "Mafia.cfplug" c ID=0. Плагин остановлен.
? Что нужно передать программе, чтобы вызвать такую ошибку?

anonim,
попробуйте так:

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

  
if Assigned(Form1) then
begin 
  if Assigned(Form1.sSkinmanager1) then
    Form1.sSkinmanager1.Active:=false;
  if Assigned(Form1.FilterGraph1) then
    FreeAndNil(Form1.FilterGraph1);
end;
FreeAndNil(Form3);
FreeAndNil(Form2);
FreeAndNil(Form1);
ZigZagkms
Вам лучше попробовать воспользоваться оператором try ... catch, чтобы понять причину ошибки.
Насколько я помню, к свойству Items нельзя обращаться, если у элемента ListBox нет компонента-родителя. Не особо силён в C++ :)

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

Добавлено: 16:18, 21.09.2010
-=SJ=-
KGB писал(а): попробуйте так:

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

  
if Assigned(Form1) then
begin 
  if Assigned(Form1.sSkinmanager1) then
    Form1.sSkinmanager1.Active:=false;
  if Assigned(Form1.FilterGraph1) then
    FreeAndNil(Form1.FilterGraph1);
end;
FreeAndNil(Form3);
FreeAndNil(Form2);
FreeAndNil(Form1);
Еще не понятно что такое FilterGraph1 если это компонент установленный на форму в дизайнере то его не надо освобождать вручную так, как при освобождении Form1 может тоже выскочить ошибка при доступе к уже уничтоженному объекту

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

Добавлено: 16:20, 21.09.2010
ОреЛ
Есть кто владеющий C# для импорта с C++ на C#?

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

Добавлено: 16:29, 21.09.2010
Maxim Mirgorodsky
KGB писал(а):Maxim Mirgorodsky,
Что может привести к

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

[21.09.2010 17:23:55] Ошибка при обработке программой сообщения от плагина "Mafia.cfplug" c ID=0. Плагин остановлен.
? Что нужно передать программе, чтобы вызвать такую ошибку?
Не должно быть такого, разве что в памяти какие-то ошибки. Это проявилось один раз?

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

Добавлено: 16:31, 21.09.2010
KGB
Maxim Mirgorodsky писал(а):
KGB писал(а):Maxim Mirgorodsky,
Что может привести к

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

[21.09.2010 17:23:55] Ошибка при обработке программой сообщения от плагина "Mafia.cfplug" c ID=0. Плагин остановлен.
? Что нужно передать программе, чтобы вызвать такую ошибку?
Не должно быть такого, разве что в памяти какие-то ошибки. Это проявилось один раз?
У меня не проявлялось ни разу, иногда проявляется у пользователей, как я заметил, при нескольких действиях плагина подряд (закрытие всех открытых приватов, отправка большого количества приватов и т.п)

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

Добавлено: 16:46, 21.09.2010
sasha
KGB писал(а):
Maxim Mirgorodsky писал(а):
KGB писал(а):Maxim Mirgorodsky,
Что может привести к

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

[21.09.2010 17:23:55] Ошибка при обработке программой сообщения от плагина "Mafia.cfplug" c ID=0. Плагин остановлен.
? Что нужно передать программе, чтобы вызвать такую ошибку?
Не должно быть такого, разве что в памяти какие-то ошибки. Это проявилось один раз?
У меня не проявлялось ни разу, иногда проявляется у пользователей, как я заметил, при нескольких действиях плагина подряд (закрытие всех открытых приватов, отправка большого количества приватов и т.п)
Лично у меня появлялось уже 3 раза!

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

Добавлено: 16:48, 21.09.2010
SV
-=SJ=- писал(а):
KGB писал(а): попробуйте так:

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

  
if Assigned(Form1) then
begin 
  if Assigned(Form1.sSkinmanager1) then
    Form1.sSkinmanager1.Active:=false;
  if Assigned(Form1.FilterGraph1) then
    FreeAndNil(Form1.FilterGraph1);
end;
FreeAndNil(Form3);
FreeAndNil(Form2);
FreeAndNil(Form1);
Еще не понятно что такое FilterGraph1 если это компонент установленный на форму в дизайнере то его не надо освобождать вручную так, как при освобождении Form1 может тоже выскочить ошибка при доступе к уже уничтоженному объекту
Это компонент каторый не использует sSkinmanager,это компонент для воспроизведение мультимедийных файлов.

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

Добавлено: 16:53, 21.09.2010
SV
KGB писал(а):
anonim,
попробуйте так:

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

  
if Assigned(Form1) then
begin 
  if Assigned(Form1.sSkinmanager1) then
    Form1.sSkinmanager1.Active:=false;
  if Assigned(Form1.FilterGraph1) then
    FreeAndNil(Form1.FilterGraph1);
end;
FreeAndNil(Form3);
FreeAndNil(Form2);
FreeAndNil(Form1);
Не помогло,неподскажите ещё варианты?

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

Добавлено: 17:03, 21.09.2010
dr1v3
Поковырял тут api для серверного плагина и возникло два вопроса: как обрабатывать приглашения в каналы и как зайти в "закрытый" канал, т.е. тот, куда можно только пригласить? И ещё: когда пытаюсь зайти в канал по 1026, не пускает с кодом 1091.1 P.S. Не пускает в уже созданные каналы, а создавать и заходить получается.

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

var aDataToSend : AnsiString;
    uText : String;
begin
aDataToSend :=fTextToAnsiString(frm_Settings.lbledt_nick.text)+ 
fIntegerToAnsiString(1)+
fTextToAnsiString(frm_Settings.edt1.text)+
fIntegerToAnsiString(0); 
CommFortProcess(dwPluginID, 1026, PAnsiChar(aDataToSend), Length(aDataToSend));
end;

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

Добавлено: 17:11, 21.09.2010
KGB
Не помогло,неподскажите ещё варианты?
Как уже сказал -=SJ=-, попробуйте вообще не освобождать FilterGraph1.
Поковырял тут api для серверного плагина и возникло два вопроса: как обрабатывать приглашения в каналы и как зайти в "закрытый" канал, т.е. тот, куда можно только пригласить?
1. Пока никак;
2. Дать плагину права (кажется, на модерирование канала), пока по-другому, кажется, тоже никак :)

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

Добавлено: 17:34, 21.09.2010
dr1v3
KGB писал(а): 2. Дать плагину права (кажется, на модерирование канала), пока по-другому, кажется, тоже никак :)
И все же не пойму, почему плагин не заходит в каналы... Права пробовал давать, не помогло

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

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

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

Обращаем внимание, что если канал уже создан, то производится только вход, а значение режима игнорируется.
Создаю каналы (имена флудовские. чтоб точно до этого такого канала не было создано):
выавыававыавы=0
авпавпаввыав=1
цукуцкуцкуцкуц=2
мсимсимимимс=3
прилагаю скрины
1.jpg
(63.29 КБ) 52 скачивания
2.jpg
(65.32 КБ) 50 скачиваний
4.jpg
(63.73 КБ) 50 скачиваний

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

Добавлено: 18:32, 21.09.2010
@serg@
3.jpg
(63.73 КБ) 49 скачиваний
клиент 5.00e, вручную создаются каналы, отображаемые в списке
код

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

    AnsiString s;
    int offset=0;
    s.SetLength(8+LabeledEdit2->Text.Length()*2);
    fWriteInteger(s.c_str(),&offset,RadioGroup2->ItemIndex);
    fWriteText(s.c_str(),&offset,LabeledEdit2->Text);
    Memo4->Lines->Add(LabeledEdit2->Text+"="+UnicodeString(RadioGroup2->ItemIndex));
    events(67,s);
и

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

bool events (DWORD dwID, AnsiString s)
{
    (*CommFortProcess)(dwPluginID,dwID,s.c_str(),s.Length());
}

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

Добавлено: 00:37, 22.09.2010
$teelR@t
Maxim Mirgorodsky, а я так вижу для плагинов отдельные потоки не выделяются? То есть если плагин зависнет, то и сервак вместе с ним...

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

Добавлено: 09:53, 22.09.2010
dr1v3
Эээ спрошу ещё раз: только у меня виртуальный юзер из серверного плагина не может заходить на указанные каналы?