(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 

Конференция "Micro Focus/Borland"

Обсуждение вопросов, связанных с компанией Micro Focus/Borland, ее продуктами CaliberRM, CaliberRDM, SilkTest, StarTeam, TeamDefine, Together и других.

 
 
Добавить сообщение »

Тема: Обсуждение материала "Принцип создания плагинов в Delphi"

Иногда нужные мысли приходят после того, как программа сдана заказчику. Для этого придумали плагины. Плагин - это простая dll библиотека, в которой обязательно присутствует ряд процедур и функций, которые выполняют определенные разработчиком действия

Автор:  lightforever Дата: 15.04.2014 14:58
помойму это делается как то так [открыть ссылку]
Ответить на сообщение »
 
Автор:  Николай Дата: 01.07.2011 23:49
КАК НЕНУЖНО ПИСАТЬ ПЛАГИНЫ НА ДЕЛФИ.
По порядку.
1). У программы и dll собственные менеджеры памяти, которые ничего не знают друг о друге.
Это решается включением в проект ShareMem, т.к. иначе String (AnsiString), динамические массивы и прочие динамические структуры нельзя передавать туда-сюда.
В Данной статье для строк использовали PChar - это хорошо! Но далее мы видем страшное! В библиотеку передаются объекты! Одному богу известно, что у вас с кучей произойдет если вы будете менять скажем на канве TFont.
И тут мы плавно перешли ко второй страшной штуке!

2). RTTI. Как нам известно тип обьекта определяется по адресу таблицы динамических методов. Т. К. библиотека таскает с собой собственную реализацию классов, то соответственно и служебные структуры у нее свои. В данной статье класс обьекта с которым работает плагин задается статически. Т.К. сигнатуры класса совпадают то никаких проблем вроде нет, но вот если мы попробуем динамическиое приведение типов, тут и начнутся ексцепшены с кастингом. Самые частые ошибки вылазят на формах и касаются TFont, т.к. VCL где может работает с TObject-ом и не может его правильно кастануть на совсем неведомый ему TFont который живет в совсем другом сегменте кода.

Решения тут Три.
Или собирать библиотеки и екзешник с рантайм-пакетами (но тогда все должно быть собрано в одной версии компилятора!).
Или сериализовать/десериализовать данные в буффера и потом их восстанавливать.
Или использовать интерфейсы. Последний вариант самый приемлемый! полностью реализовывать Com-интерфейсы не нужно. Сборка мусора происходит автоматически и в нужной куче.
Библиотеки вообще можно реализовывать на левых языках которые про RTTI ни сном, ни духом! Главное, чтоб соглашения о візовах соблюдались.
Ответить на сообщение »
 
Автор:  Andrey Дата: 12.05.2008 21:17
Достали,
Эта статья не о плагинах а о подключении dll и возможности использования ресурсов в dll.
Взяли бы и привели пример из своей практики.
Дело в том что проблема палгинов это написание приложения с возможностью его дальнейшего расширения, а не как подключить dll. Этих статей уже много в айнете.
Автор скажет: а вот это уже дело прораммиста, но вот ЭТО самое интересное.
Завтра не будет технологии dll, появится что-то новое, но зато теория и идеи автора останутся.
Извинте за резкость.
Ответить на сообщение »
 

Добавить сообщение »

 Распечатать »
 Правила публикации »
   
 Рекомендовать »  
 

Магазин программного обеспечения   WWW.ITSHOP.RU
ESET NOD32 SMALL Business Pack newsale for 3 user
FastReport.Net Professional Edition Single License
Panda Mobile Security - ESD версия - на 1 устройство - (лицензия на 1 год)
SmartBear AQtime Pro - Node-Locked License (Includes 1 Year Maintenance)
Quest Software. Toad for SQL Server Development Suite
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Реестр Windows. Секреты работы на компьютере
СУБД Oracle "с нуля"
Работа в Windows и новости компании Microsoft
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Как мигрировать программу написанную на старом Буилдер 4.52 (1)
Мы поддерживаем старое приложение написанное с использованием С++ Буилдер 5.5 (ЕХЕ) и Буилдер...
 
Создание базы данных в Delphi, без сторонних БД (1)
Уважаемый автор, гуглю уже который день и у Вас как у всех "кидаем.." "даже не создаем проект"...
 
C++ Builder6 & Excel (11)
Доброе время суток! Пишу приложение в C++ Builder6 для формирования файлов Excel. Требуется...
 
Принцип создания плагинов в Delphi (3)
Достали, Эта статья не о плагинах а о подключении dll и возможности использования ресурсов в...
 
QuickREport (40)
Есть приложение скомпилированное в Delphi6. Для построения отчетов я использовал компонеты из...
 
 
 



    
rambler's top100 Rambler's Top100