Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как разрабатывать плагины. 
:(
    Опции темы
saw
Дата 14.11.2007, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 2.10.2007

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



Везде только и слышу плагины и плагины.
А как надо писать прогу чтобы она эти плагины поддерживала?
PM MAIL   Вверх
Lazin
Дата 14.11.2007, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Проще всего плагины на основе dll. Просматриваешь папку в которой должны быть плагины, и загружаешь динамически библиотеки.
Код

typedef void WINAPI (*func_lvl) ( uint8 lev ) ; // тип импортируемой ф-ии
func_lvl SetLevel; // указатель на ф-ю в длл
HINSTANCE hLib = LoadLibrary("test.dll"); // динамичесская загрузка библиотеки
SetLevel = (func_lvl)GetProcAddress((HMODULE)hLib, "_SetLevel@4"); // получаем адрес ф-ии
SetLevel(0); // вызов ф-ии

имя импортируемой ф-ии можно узнать с помощю утилиты dumpbin
еще можно COM использовать.
PM MAIL Skype GTalk   Вверх
ama_kid
Дата 14.11.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

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



Цитата(saw @  14.11.2007,  01:38 Найти цитируемый пост)
как надо писать прогу чтобы она эти плагины поддерживала?
Первым делом надо разработать спецификацию для тех, кто эти самые плагины будет разрабатывать. Например, указать::
1) что в загружаемых (способом, указанным Lazin) библиотеках должны быть разработаны функции такие-то и такие-то, выполняющие то-то и то-то, которые твоя программа будет вызывать при загрузке (или при работе)
2) что твоя программа предоставляет такие-то функции для вызова их из плагина, чтобы плагин мог получить необходимую информацию. Либо можно разработать другой способ обмена информацией (например, системными сообщениями), главное - отразить это в документе...
ну и т.д и т.п. в зависимости от задач...
Имхо, это самое главное - без этой спецификации разрабатывать плагины для своей программы сможешь только ты сам (а это вроде как бред)... Да и саму программу легче писать, когда есть готовая спецификация того, что надо сделать... Понятно, что спецификация по ходу разработки будет видоизменяться, но основы, принципы надо закладывать изначально...
А далее - уже дело техники: надо реализовать все, что описано в спецификации для своей стороны...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
jonie
Дата 14.11.2007, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



http://forum.vingrad.ru/forum/topic-159058...25AB/index.html
там я писал...
и вообще поиск по слову "плагин" в разделе С++ дает 2-е страницы результатов (а уж гугл сколько даст...)
http://www.cyberguru.ru/programming/visual...th-plugins.html
вот еще может чем поможет


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


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

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


 




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


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

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