![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Подтвердите свой е-майл
Регистрация: 11.04.2012
Сообщений: 85
|
![]()
С Новым Годом!
BPL не предлагать, ладно? ![]() Суть, из dll грузится плагин который оформлен ввиде класса отдельным юнитом, он делает кнопку на форме главного приложения. Интерфейс плагина(типа абстрактного класса) Код:
Код:
Код:
Код:
Работает и ладно, но при закрытии формы выдается ошибка access violation. В call stack-е последним идет :00482b72 ListRemove+$A Как починить? EDIT: Починил. Нужно чтоб сам плагин кнопку свою освобождал Код:
Код:
Последний раз редактировалось WhiskasTM; 02.01.2013 в 16:09. |
![]() |
![]() |
![]() |
#3 |
Подтвердите свой е-майл
Регистрация: 11.04.2012
Сообщений: 85
|
![]()
О, да, видел когда-то, но мало че тогда понимал и забыл. Здорово, придется чай наварить.
Кстати, тупую кнопку-то я сделал на главной форме, а вот держать события она не может, т.е. банально не выполняет их(события также в классе декларируются). Но зато когда сделать сначала панель, а затем на панели эту кнопку то все ОК. Че за грабли блин везде... |
![]() |
![]() |
![]() |
#4 |
Далеко не
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,512
|
![]()
мне кажется или при создании кнопки надо еще передать Tfont основного приложения...
|
![]() |
![]() |
![]() |
#5 |
Подтвердите свой е-майл
Регистрация: 11.04.2012
Сообщений: 85
|
![]()
Все это бесполезно. А если работать ещё и со сторонними компонентами, то там такие ошибки выходят, что гугл выдает "нет результатов".
Раз уж приложение хочет быть расширяемым, то пусть само оно и предоставляет методы затем экспортирует их. Код:
|
![]() |
![]() |
![]() |
#6 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
точную причину назвать не смогу, но копать надо в сторону ShareMem.
DLL и EXE как абсолютно НЕЗАВИСИМЫЕ (на уровне Delphi не Windows) имеют ОТДЕЛЬНЫЕ менеджеры памяти (одинаковые но работающие независимо друг от друга). И каждый свой список типов объектов. При работе с DLL безопасно(не имеет проблем) передавать можно только общесистемные типы(integer, point, Pchar,...) там где нечего делать менеджеру памяти. (не классы, и даже не string). Нandle передать можно. создали удалили объекты =>сработал менеджер памяти DLL(выделили память) => выгрузили DLL => сработал менеджер памяти DLL(очистка) => использовали объект DLL =>AV создали удалили объекты =>сработал менеджер памяти DLL(выделили память) => оставили DLL => сработал менеджер памяти DLL(очистка) => использовали объект DLL =>AV shareMem данную проблему частично снимает. Не зря ПЕРВОЙ же строчкой ВАС об этом предупреждают. Цитата:
D7 Help Writing dynamically loadable libraries Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 18.04.2013 в 13:19. |
|||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать шрифт из файла и сохранить его в виде TFont | phomm | Общие вопросы Delphi | 4 | 22.12.2011 23:07 |
как переменную типа TFont перевести в тип integer? | делфи_6 | Общие вопросы Delphi | 8 | 26.05.2010 06:02 |
[Как сохранить и прочитать TFont в реестр]. | ZARO | Общие вопросы Delphi | 3 | 12.03.2010 22:41 |
Вопрос про TFont ? | juan666777 | Общие вопросы Delphi | 6 | 29.05.2009 16:08 |