|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.12.2011, 12:22 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Плагины на C++ для программы на delphi. Это возможно?
Доброго времени суток!
Допустим программа предостовляет некий модуль с интерфейсами для создания плагина. На delphi, просто воткнул pas файл и программируй сколько влезет. Что делать, когда плагин хочет реализовать человек, который не знает Delphi, но знает C++? |
20.12.2011, 12:31 | #2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Писать длл.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
20.12.2011, 14:16 | #3 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
делать через DLL, плюс правильная огранизация программы
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
20.12.2011, 14:30 | #4 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Исходя из своего опыта экспериментирования с dll(C++) и вызова в Lazarus и Delphi, то могу предположить, что это не только возможно, но и ничего сложного при реализации быть не должно
|
20.12.2011, 18:44 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Был такой вариант...
Но тут тонна вопросов. DLL(пускай PluginAPI.dll) всего в одном экземпляре. Плагинов неопределённое количество. Dll не может быть перезагружена для каждого плугина отдельно. НО можно из программы передавать указатель на АП этой dll -> КАК? Далее DLL реализует некий IMainInterface, если писать только делфи плагин(соответсвенно интерфейс ввиде pas есть), то плагин наследует интерфейс, создавая его копию: Код:
Разме можно так зделать из DLL? Создать несколько наследуемых интерфейсов и как-то чтоли перадать их самим DLL плагинам. |
20.12.2011, 18:57 | #6 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
что такое АП?
Цитата:
плагин в ДЛЛ, а не приложение. Цитата:
можете посмотреть в сторону COM, чем не плагины. либо свою структуру функций, как например в Миранде(раньше точно, сейчас не знаю), она передает указатель на функцию, через которую плагин взаимодействует с приложением. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
20.12.2011, 19:09 | #7 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
самый простой вариант: программа это EXE, плагины это DLL.
программа загружает плагин после чего вызывает какие-то там функции из DLL, одна из этих функций в DLL будет называться SetProgramAPI, программа вызывает эту функцию и передаёт ей указатели на свои функции, через которые DLL будет взаимодействовать с программой.
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
20.12.2011, 21:17 | #8 | ||||||||
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Цитата:
Ну и конечно, ты должен документировать способ общения (контракт). В частности, если для Delpi ты предоставляешь заголовочные .pas файлы, то для C++ ты также должен предоставлять заголовочники (.h). Которые получаются просто переводом .pas -> .h (и м.б. .cpp). Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
"передаёт экспортируемую функцию" надо понимать как "ничего никому не передаёт, а экспортирует, кому надо - сам возьмёт". Иными словами, если .exe делает: Код:
Цитата:
Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
||||||||
20.12.2011, 21:25 | #9 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
20.12.2011, 21:37 | #10 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
создание программы на Delphi (возможно за вознаграждение) | pr9n9 | Фриланс | 10 | 14.03.2011 13:17 |
Плагины для gta-vc? | VintProg | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 16 | 27.06.2010 10:18 |
подключение к Excel из delphi через ODBC.возможно ли это без глюков? | betirsolt | БД в Delphi | 0 | 13.06.2010 01:05 |
Автосохранение исходников в Delphi. Это возможно? | Kottik | Софт | 16 | 20.09.2009 17:36 |