Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приложение с плагинами на C++ Builder, Информация, ссылки, примеры 
:(
    Опции темы
ZVano
Дата 25.5.2011, 17:48 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



Предлагаю собрать в этом топике информацию по теме создания плагинистого приложения.
Нужны ссылки на статьи, туториалы, примеры, архивы с исходниками либо SVN|GIT|HG|иТД репозитории с готовыми проектами.
При выкладывании ссылки пишите краткий комментарий: название материалла; автор; языки программирования примеров; что описано в материале.

Тема будет полезна  для многих программеров среднего уровня.

Добавлено @ 17:52
Статья: Создание простого приложения с плагинами.
Автор: Покрашенко Александр
Язык: c++
Комментарий: Описывается как создать плагинистое приложение на любом С++. Использован подход "голые DLL"

Это сообщение отредактировал(а) ZVano - 26.5.2011, 11:35


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
borisbn
Дата 26.5.2011, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



ZVano, тема полезная, но предлагаю расширить её - приводить примеры не только для Builder'а, а для любых систем.
если же оставить только Builder, то фразу
Цитата(ZVano @  25.5.2011,  17:48 Найти цитируемый пост)
Тема будет полезна  для многих программеров среднего уровня.

предлагаю переделать: ... для самых начинающих программеров самого низкого уровня. Всё-таки Builder - не профессиональная система (обрати внимание, не Delphi или VCL, а именно Builder).

Если согласен с расширением, то вот примерчик


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ZVano
Дата 26.5.2011, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



Цитата(borisbn @  26.5.2011,  10:41 Найти цитируемый пост)
приводить примеры не только для Builder'а, а для любых систем

Согласен. Только нужно к ссылке писать для какой системы приведен пример и является ли он спецефичным для этой системы (напр. чистые BPL в Delphi)
Шапку подправил.

Добавлено @ 11:51
Название: "Создаём систему плагинов"
Автор: Александр Алексеев
Язык программирования: Object Pascal
URL: 
Часть 1 - Обзор подходов. Выбор подхода.
Часть 2 - В предыдущий раз мы рассмотрели несколько возможных вариантов для системы плагинов. Самое время заняться реализацией.
Часть 3 - Прежде чем переходить к реализации нашей функции _Init, пощупаем сначала эти "пакеты в виде DLL".
Часть 4 - В прошлый раз мы немного пощупали "пакеты в виде DLL" и реализовали недостающие части функций инициализации в таком плагине.
Часть 5 - Самое время поговорить о серверной части. А начнём мы с загрузки плагинов.
Часть 6 - Настало время обсудить наш интерфейс IInit. Как вы помните, ранее мы не говорили, что это такое - пока мы считали это "неким классом", у которого есть методы Init и Done.
Часть 7 - При декларации интерфейса IInit мы описали его методы как safecall вместо ожидаемого stdcall.
Часть 8 -  В последний раз мы полностью закончили рассмотрение загрузки плагинов. Теперь поговорим о самом вкусном - о функциональности плагинов.
Часть 9 - Прежде, чем приступать к написанию кода, хотелось бы сказать несколько слов о важных моментах, касающихся разработки плагинов, которые остались за бортом.

Описание: Цикл статей в котором рассматриваются различные подходы создания плагинистых приложений в IDE Delphi.
Автор выбрал подход "BPL, как DLL" и в дальнейшем реализовывает его.

Это сообщение отредактировал(а) ZVano - 26.5.2011, 12:17


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
ZVano
Дата 26.5.2011, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



Цитата(borisbn @  26.5.2011,  10:41 Найти цитируемый пост)
Если согласен с расширением, то вот примерчик

Пример отсутствует на указаном ресурсе :(


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
borisbn
Дата 26.5.2011, 13:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



ууупс. Яндекс удалил. Вот. скопировал сюда

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  html.zip 395,09 Kb


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
borisbn
Дата 26.5.2011, 13:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



а вот пример использования

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  debugWindow.zip 1,90 Kb


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ZVano
Дата 26.5.2011, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



borisbn, а можно поподробнее о каркасе "Mosaic"?
Что за зверь, чьих рук творение, привязан ли жестко к QT?


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
borisbn
Дата 26.5.2011, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Цитата(ZVano @  26.5.2011,  16:32 Найти цитируемый пост)
Что за зверь, чьих рук творение

этот проект делали три человека на нашей фирме: один программист и два архитектора ( я в том числе ). Делали пару лет ( сначала на дебилдере, потом на Qt ). Т.к. это коллективный труд, то исходники выложить не могу.

Цитата(ZVano @  26.5.2011,  16:32 Найти цитируемый пост)
привязан ли жестко к QT?

К QuickTime'у - нет, а к Qt - да smile
На самом деле привязан только основной движок. Модули же (плагины) привязываются только если они собираются инсталлировать свой widget в систему (тут никуда не денешься). А если модуль просто обрабатывает данные, генерит их, читает/пишет файлы, общается по сети - то нет, не привязан.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ZVano
Дата 26.5.2011, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



Цитата(borisbn @  26.5.2011,  16:43 Найти цитируемый пост)
Т.к. это коллективный труд, то исходники выложить не могу.

Это правильно.

На первый взгляд архитектура хорошо продумана. Но маленьким я бы каркас не назвал smile


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
ZVano
Дата 7.6.2011, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



Название: "Плагины на основе COM интерфейсов"
Автор: Роман Лут (программист графического движка и дизайнер уровней 3D шутера Venom)
Язык программирования: Object Pascal, VC++, Borland С++ Builder, Managed C++, C#
URL: 
1я страница
Исходники
Описание: Описывается принцип создания плагинистого приложения на базе COM интерфейсов.
Вроде, принцип применим для любых средсв разработки, которые могут работать с dll.
Статья тежелая для понимания.

Это сообщение отредактировал(а) ZVano - 7.6.2011, 11:37


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
fish9370
Дата 13.6.2011, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



в линуксе практикуют два способа при загрузке подключаемых модулей:

1) после загрузки динамического модуля, производится попытка разрешить (resolve) символы интерфесы, затем в случае успеха, производится вызов интерфейса, с целью получения информации о  модуле, и его дальнейшей регистрации в ядре

2) после загрузки динамического модуля автоматически выполняется специальная функция в модуле (конструктор). При этом модуль получает доступ к списку модулей в ядре. Конструктор сам регистрирует себя.

второй способ мне кажется более предпочтительным, т.к. он более удобен.

в виндоуз реализован только первый способ (или я плохо информирован).


p.s. могу выложить исходники блокнота с плагинами (windows), если кому интересно..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
ZVano
Дата 14.6.2011, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



Цитата(fish9370 @  13.6.2011,  23:18 Найти цитируемый пост)
p.s. могу выложить исходники блокнота с плагинами (windows), если кому интересно..

Конечно интересно. Выкладывай.


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
fish9370
Дата 14.6.2011, 19:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



не могу залить исходник сюда (ограничение размера)

исходник лежит здесь: 'http://79.120.100.108/db-Editor v1.0.0.34 src alpha.rar'

написано все это в Borland Developer Studio 2006, C++ Builder
тестовый плагин лежит в папке plugin

с удовольствием отвечу на вопросы


--------------------
undefined
PM MAIL WWW ICQ   Вверх
ZVano
Дата 14.6.2011, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



Цитата(fish9370 @  14.6.2011,  19:35 Найти цитируемый пост)
е могу залить исходник сюда (ограничение размера)

Удалил временные файлы и перезалил.
Спасибо за пример. С исходниками пока не разбирался. 
Выглядит симпатично. Сразу заметил решение ряда интересующих меня вопросов.

Это сообщение отредактировал(а) ZVano - 14.6.2011, 20:12

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  db_Editor_v1.0.0.34_src_alpha_01_.zip 1 018,21 Kb


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
fish9370
Дата 14.6.2011, 22:32 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



прошу прощения, в файле Unit2.cpp, в строке 1482, после 
Код

memset(&HostInfo,0,sizeof(HostInfo));


пропущена строка
Код

HostInfo.hEditor = &hwndScintilla;


пожалуйста, добавьте


--------------------
undefined
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0911 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.