![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| gonzales |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 13.3.2006 Репутация: 1 Всего: 2 |
Хочу создать систему плагинов, ознакомился с созданием библиотек, в принципе все понятно, но есть один вопрос:
мне нужно в плагине создать экземпляр класса и функцию, значение которой мне нужно возвращать в приложение. Можно ли это сделать вообще и если можно, то подойдет ли такой алгорим: 1. Экспортирую функции из библиотеки: Init - функция создания экземпляра класса устройства Open - функция доступа к устройству GetCode - функция возвращающая значение регистра устройства 2. В приложении вызываю функию Init - создается экземпляр класса из библиотеки (и держится в памяти) 3. В приложении вызываю Open - созданный наследник дает доступ к устройству 4. Запускаю таймер в приложении, по которому вызываю GetCode - который возвращает значение регистра устройства в приложение Скажите, уважаемые, будет ли такая схема работать? Это сообщение отредактировал(а) gonzales - 27.12.2006, 17:07 --------------------
- мастер, мастер, запорол..., все четыре запорол!!!- я ж тебе только три давал!!!???- да я и образец запорол!!!! |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
как всё сложно описано.
1. это будет работать 2. где создаётся экземпляр класса? в библиотеке! 3. какой наследник? кто-то умер? 4. это будет работать, если будет написано правильно |
|||
|
||||
| gonzales |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 13.3.2006 Репутация: 1 Всего: 2 |
может и сложно но зато понятно.
2. экземпляр создается в библиотеке 3. имеется в виду экземпляр в общем если я все правильно понял - такая схема должна работать --------------------
- мастер, мастер, запорол..., все четыре запорол!!!- я ж тебе только три давал!!!???- да я и образец запорол!!!! |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
непонятно. потому и написал что сложно
должна. при парочке условий: 1) приложение ничего не узнает об экземпляре класса в плагине(если это Длл) 2) функции Init, Open и GetCode - должны быть действительно функциями(а не методами). Желательно с директивой stdcall; |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
а "экземпляр класса" где убиваться будет? нельзя вроде как из библиотеки делфевые классы(экземпляры) передавать
-------------------- There are always someone smarter than you... |
|||
|
||||
| gonzales |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 13.3.2006 Репутация: 1 Всего: 2 |
да, приложению этот экземпляр класса до лампады - ему главное получать значение GEtCode, а убиваться он будет при закрытии библиотеки
Это сообщение отредактировал(а) gonzales - 28.12.2006, 12:39 --------------------
- мастер, мастер, запорол..., все четыре запорол!!!- я ж тебе только три давал!!!???- да я и образец запорол!!!! |
|||
|
||||
| gonzales |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 13.3.2006 Репутация: 1 Всего: 2 |
один вопрос:
не могу понять, почему не работает??? пишу в библиотеке функцию
в основной программе
получаю i=2456 и следом Acsess Violation разобрался, все дело было в том, что я писал function Open(i:word):word; stdcall; без него все работате Это сообщение отредактировал(а) gonzales - 28.12.2006, 13:27 --------------------
- мастер, мастер, запорол..., все четыре запорол!!!- я ж тебе только три давал!!!???- да я и образец запорол!!!! |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |