Технология создания плагинов и программ-дополнений
Re: Технология создания плагинов и программ-дополнений
Предложение:
как насчет отправки файла плагином? было бы полезно
как насчет отправки файла плагином? было бы полезно
Re: Технология создания плагинов и программ-дополнений
Пробовал откомпилировать null плагин на mingw (версия GCC для windows). При нажатии в настройках плагина клавиши "запустить" он не запускается, но кнопки "настройки" и "о плагине" работают. Еще компилировал в Visual C++ 2008. Результат тот же.
В чем может быть проблема?
В чем может быть проблема?
Re: Технология создания плагинов и программ-дополнений
В том что плагин ничего не делает! Вы исходный код смотрели? 

Re: Технология создания плагинов и программ-дополнений
Конечно смотрел! На mingw и VC++ 2008 компилируется нормально, но не запускается. Декорирование функций отключил.
Re: Технология создания плагинов и программ-дополнений
supermet
Если честно, то код нульплагина вообще с ошибками, и без корректирования он не должен компилироваться.
Плюс в MSVS C++ нет некоторых директив и заголовочных файлов используемых в примере.
Ну у тебя раз компилируется, значит дело, скорее всего, в экспорте функций, поковыряй в этом направлении.
Если честно, то код нульплагина вообще с ошибками, и без корректирования он не должен компилироваться.
Плюс в MSVS C++ нет некоторых директив и заголовочных файлов используемых в примере.
Ну у тебя раз компилируется, значит дело, скорее всего, в экспорте функций, поковыряй в этом направлении.
Re: Технология создания плагинов и программ-дополнений
Я отредактировал исходник, убрал ссылку на vcl, заменил функции ShowMessage на MessageBox и все откомпилировалось, но к сожалению плагин не запустился.
Re: Технология создания плагинов и программ-дополнений
Я думаю, что все таки проблема в именах экспортируемых функций. Советую вам "вскрыть" свою DLL (если она создалась при компиляции) и посмотреть истинные имена функций с помощью Майкрософтовской утилитыhttp://s49.radikal.ru/i126/0907/8f/c970f03993c4.jpg
. Они должны быть такими Пользователь думает, что в килобайте 1000 байт, а программист думает, что в километре 1024 метра.
Re: Технология создания плагинов и программ-дополнений
У меня такие же имена функций, только порядок другой.
Re: Технология создания плагинов и программ-дополнений
Вот это самое главное. Значит для проверки работы плагина напишите код в операторе if:У меня такие же имена функций.
if(dwMessageID==5)
{
MessageBox(NULL,"OK!","Проверка",MB_OK );
}
Пользователь думает, что в килобайте 1000 байт, а программист думает, что в километре 1024 метра.
Re: Технология создания плагинов и программ-дополнений
Я проверил. Все экспортируемые функции работают кроме PluginProcess.
Re: Технология создания плагинов и программ-дополнений
Вот такой процедурой можно узнать сообщение:demon9992 писал(а):Помогите, нужно вывести публикуемое сообщение.
Всё перепробывал....Код: Выделить всё
var s: String; begin s:=bMessage^; ShowMessage(s);
Код: Выделить всё
procedure ParseMessFromChanel(bMessage : PString; dwMessageLength : DWORD; var user, ip, chan, txt: String);
var l: integer;
res: TStringStream;
begin
res := TStringStream.Create(String(bMessage));
//пользователь() + текст(название канала) + текст(опубликованное сообщение или состояние)
Res.Position := 0;
res.Read(l, 4); // узаем длину поля Ника
user:= res.ReadString(l); // Ник
res.Read(l, 4); // узнаем длину ip
ip:= res.ReadString(l); // узнаем ip
res.Read(l, 4); // длина названия канала
chan:= res.ReadString(l); // узнаем название канала
res.Read(l, 4); // узнаем длину текста
txt:= res.ReadString(l); // узнаем текст
res.Free;
end;
Re: Технология создания плагинов и программ-дополнений
Не могу понять как так получается что у меня МОЙ плагин работает, у жены на компике работает (Win7 свежепоставленная), а на форуме уже два человека написало что у них не работает, а только чат показывает: "Ошибка при запуске плагина…". У них версия чата 4.30 (как они пишут)
Куда копать?
Куда копать?
-
- Администратор
- Сообщения: 6886
- Зарегистрирован: 09:56, 27.06.2005
Re: Технология создания плагинов и программ-дополнений
Ошибка при запуске плагина - значит при выполнении процедуры PluginInit произошло исключение (ошибка). Копать необходимо в сторону чистоты содержимого этой функции
.

Re: Технология создания плагинов и программ-дополнений
понятно. спасибо. А как узнать подробнее что за исключение?
Вопрос: большую часть кода я могу перенести с PluginInit в DLL_PROCESS_ATTACH, если ошибка в моём коде, то чат тогда будет падать? или показывать более подробную ошибку?
У Вас плагин заработал?
И ещё (только сообразил): PluginInit вызывается когда пользователь НАЖИМАЕТ кнопку "Запустить"? или нет?
Даже если процедуру PluginInit ВООБЩЕ убрать, то кнопки "Настройка" и "О плагине" ДОЖНЫ работать?
Вопрос: большую часть кода я могу перенести с PluginInit в DLL_PROCESS_ATTACH, если ошибка в моём коде, то чат тогда будет падать? или показывать более подробную ошибку?
У Вас плагин заработал?
И ещё (только сообразил): PluginInit вызывается когда пользователь НАЖИМАЕТ кнопку "Запустить"? или нет?
Даже если процедуру PluginInit ВООБЩЕ убрать, то кнопки "Настройка" и "О плагине" ДОЖНЫ работать?
Re: Технология создания плагинов и программ-дополнений
Уважаемые разработчики! Ваша система плагинов очень гибка и простая в использовании, за это огромное спасибо. Хотелось бы еще увидеть команды для получения версии сервера (полезная штука), так вы сможете с помощью разработчиков плагинов предотвращать нелегальное использования серверов ниже текущих версий. Если можно добавьте данную команду и ID 15 для функции CommFortGetData.
Пользователь думает, что в килобайте 1000 байт, а программист думает, что в километре 1024 метра.