Страница 19 из 42
Re: Технология создания плагинов и программ-дополнений
Добавлено: 17:53, 06.08.2009
Maxim Mirgorodsky
DIGGER писал(а):понятно. спасибо. А как узнать подробнее что за исключение?
В текущей версии никак. Просто проверьте содержимое этой функции.
DIGGER писал(а):Вопрос: большую часть кода я могу перенести с PluginInit в DLL_PROCESS_ATTACH, если ошибка в моём коде, то чат тогда будет падать? или показывать более подробную ошибку?
Не стоит, потому что получается что этот код будет выполняться даже если плагин деактивирован.
DIGGER писал(а):У Вас плагин заработал?
Не запускали.
DIGGER писал(а):И ещё (только сообразил): PluginInit вызывается когда пользователь НАЖИМАЕТ кнопку "Запустить"? или нет?
Еще в случае запуска программы (если плагин активирован).
DIGGER писал(а):Даже если процедуру PluginInit ВООБЩЕ убрать, то кнопки "Настройка" и "О плагине" ДОЖНЫ работать?
Да. Но другие функции без PluginInit работать не будут.
Re: Технология создания плагинов и программ-дополнений
Добавлено: 17:54, 06.08.2009
Maxim Mirgorodsky
VIRUS писал(а):Если можно добавьте данную команду и ID 15 для функции CommFortGetData.
Возможно добавим в одной из следующих версий.
Re: Технология создания плагинов и программ-дополнений
Добавлено: 21:11, 06.08.2009
DIGGER
Maxim Mirgorodsky,
Q:Даже если процедуру PluginInit ВООБЩЕ убрать, то кнопки "Настройка" и "О плагине" ДОЖНЫ работать?
A:Да. Но другие функции без PluginInit работать не будут.
Вот! А у людей
(тех у которых плагин вообще не запускается) они не подсвечиваются! Извечный вопрос:
куда копать?
P.S. Сам лично не смог сделать с WinXP и Win7 ничего такого что бы плагин на нём не запускался…
Maxim Mirgorodsky, пожалуйста, попробуйте поставить себе плагин и
только посмотреть включены ли у Вас кнопки "Настройка" и "О плагине". т.е. даже не надо запускать плагин — так Вы ничем не рискуете.
Re: Технология создания плагинов и программ-дополнений
Добавлено: 13:41, 07.08.2009
supermet
Откомпилировал исходники примера плагина для клиента на OpenWatcom 1.8. Тот же результат, что и с Mingw (GCC 4.4.0) -- после нажатия на кнопку запуска плагина ничего не происходит. Плагин заработал только в С++ Builder 2009. Мне нужно чтоб работал на бесплатном компиляторе.
Может нужно что-то дополнительно инициализировать после "case DLL_PROCESS_ATTACH:" в главной функции?
Re: Технология создания плагинов и программ-дополнений
Добавлено: 14:52, 07.08.2009
DIGGER
supermet писал(а):…после нажатия на кнопку запуска плагина ничего не происходит.…
ну напишите в
PluginInit функцию
MessageBox() и увидите что что-то всё таки происходит

Re: Технология создания плагинов и программ-дополнений
Добавлено: 16:47, 07.08.2009
VIRUS
demon9992 писал(а):Как можно создать процедуру таймера в плагине ? Вообще возможно это ?
Конечно возможно, я например в плагине "Каркас" таймер использовал. Нужно создать объект класса TTimer и рабоать с ним.
Re: Технология создания плагинов и программ-дополнений
Добавлено: 16:59, 07.08.2009
supermet
ну напишите в PluginInit функцию MessageBox() и увидите что что-то всё таки происходит
Да, происходит. Сообщения выводятся нормально. А толку нет от этого.
Re: Технология создания плагинов и программ-дополнений
Добавлено: 19:02, 07.08.2009
DIGGER
supermet, что значит нет толку? Бери пиши, то что тебе нужно, и будет работать! Что тебя не устраивает?
Re: Технология создания плагинов и программ-дополнений
Добавлено: 00:16, 08.08.2009
supermet
DIGGER, ты меня не понял. Кнопка "запустить" остается включенной, а кнопка "остановить" не активируется. Т.е. плагин не работает.
Re: Технология создания плагинов и программ-дополнений
Добавлено: 09:16, 08.08.2009
Maxim Mirgorodsky
supermet писал(а):DIGGER, ты меня не понял. Кнопка "запустить" остается включенной, а кнопка "остановить" не активируется. Т.е. плагин не работает.
1) Убедитесь, что Вы верно заполняете структуру информации о плагине, в особенности строку strPluginVersion (версия программы, для которой предназначен плагин).
2) Убедитесь, что Вы используете соглашение __stdcall.
3) Убедитесь, что отключено декорирование имен функций.
4) Убедитесь, что код функции PluginInit не содержит ошибок. Для проверки лучше ограничить содержимое этой функции лишь самым необходимым (заполнением структуры информации о плагине и сохранением идентификатора и адресов функций программы).
Проблема в одном из 4х этих условий - это можно говорить с вероятностью практически 100%.
Re: Технология создания плагинов и программ-дополнений
Добавлено: 09:20, 08.08.2009
Maxim Mirgorodsky
DIGGER писал(а):Вот! А у людей (тех у которых плагин вообще не запускается) они не подсвечиваются! Извечный вопрос: куда копать?
P.S. Сам лично не смог сделать с WinXP и Win7 ничего такого что бы плагин на нём не запускался…
Maxim Mirgorodsky, пожалуйста, попробуйте поставить себе плагин и только посмотреть включены ли у Вас кнопки "Настройка" и "О плагине". т.е. даже не надо запускать плагин — так Вы ничем не рискуете.
То есть у части пользователей подсвечиваются эти кнопки, а у части не подсвечиваются?
Re: Технология создания плагинов и программ-дополнений
Добавлено: 11:13, 08.08.2009
Maicra Ice
Ссори может не в той теме пишу,какая прога нужна для установки плагинов??и как эти сами плагины устанавливать?просто счас пользуюсь ботами,решил попробывать плагины
Re: Технология создания плагинов и программ-дополнений
Добавлено: 11:30, 08.08.2009
•NormaBot•
Maicra Ice писал(а):Ссори может не в той теме пишу,какая прога нужна для установки плагинов??и как эти сами плагины устанавливать?просто счас пользуюсь ботами,решил попробывать плагины
Чтобы пользоваться плагинами не нужна никакая програма.Просто нужно в папке клиента создать папку "Plugins" (если она ещё небыла создана ранее )и естественно поместить туда нужные плагины.Потом в опциях клиента нужно выбрать раздел "плагины" и после их запустить а также настроить.

Re: Технология создания плагинов и программ-дополнений
Добавлено: 14:22, 08.08.2009
DIGGER
Maxim Mirgorodsky писал(а):То есть у части пользователей подсвечиваются эти кнопки, а у части не подсвечиваются?
Совершенно верно! Это я Вам и пытался пояснить!
Вот тут я нашёл способ выяснить что ошибка в плагине
(дальше люди отписывались)
Сейчас проблему решил изменив опции компиляции, но это не выход!
(как по мне)
Re: Технология создания плагинов и программ-дополнений
Добавлено: 22:58, 08.08.2009
supermet
Конечно возможно, я например в плагине "Каркас" таймер использовал. Нужно создать объект класса TTimer и рабоать с ним.
Дельфийский и Билдеровский таймер не работает без формы.
Если в плагине нет объекта TFORM, то его нужно создавать так:
Код: Выделить всё
type
TMethodPointer = packed record
pMethod: Pointer;
pObject: TObject;
end;
PMethodPointer = ^TMethodPointer;
var
Timer1: TTimer;
pointer1: TMethodPointer;
...
procedure ontimer1(Self: TMethodPointer; Sender: TObject);
begin
// код таймера
end;
...
Timer1 := TTimer.Create(nil);
Timer1.Interval := 10000;
pointer1.pMethod := @ontimer1;
pointer1.pObject := nil;
Timer1.OnTimer := TNotifyEvent(pointer1);
Timer1.Enabled := True;