Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Использование общих классов в программе и dll

Ответить
Настройки темы
C/C++ - Использование общих классов в программе и dll

Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25


Конфигурация

Профиль | Отправить PM | Цитировать


Ситуация: имеется набор классов, которые должны использоваться и в программе, и в dll (плагины). Я так понимаю, тот набор классов должен быть оформлен в отдельную dll? Или можно как нибуть сделать, что бы ихняя реализация содержалась в программе (сделать, что бы в нашем ехе файлы были экспортируемые классы, функции и тд и тп)?

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 19:16, 14-08-2012

 

Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


Не понятно. Опишите подробнее, что вы хотите сделать

Отправлено: 21:02, 14-08-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Я конкретно ничего не хочу сделать, просто академический интерес . Но для примера:
есть код класса Point:
Код: Выделить весь код
class Point {
public:
   double x,y;
   Point(double xx, double yy)
   {
      x = xx; y = yy;
   }
   bool equal(Point* p){
      if(this->x == p->x && this ->y==p->y)
         return true;
      return false;
   }
}
Данный класс должен использоватся и в программе, и в dll. Вот думаю, можно оформить все подобные классы в отдельную dll, и импортировать их оттуда... Можно сделать интерфейс Point(чисто виртуальные функции), и использовать интерфейс в работе, а не конкретную реализацию(VTABLE решит, где и как дергнуть нашу реализацию). Но мне интересно, можно ли как нибуть сделать, что бы класс был без виртуальных методов, но и что бы реализация методов была только в иполняемом файле(а то можно включить реализацию и в исполняшку, и в dll, но таким образом выходит дублирование кода, не хорошо однако)?

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 13:14, 15-08-2012 | #3


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


crashtuak, по хорошему, конечно, лучше весь дублирующийся код выносить в библиотеки dll, тогда и отладка будет проще, и не надо будет компилировать по новой основную программу, добавив 1 строку кода.
Можно и интерфейсом, но смысла в этом не больше, чем классом "внутри" программы. Все равно в итоге придется пересобирать весь проект.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 14:05, 15-08-2012 | #4

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


crashtuak, самый простой способ реализации - callback. Можно передать в dll указатели на функции-конструкторы классов, возвращающие указатели на виртуальные интерфейсы

Отправлено: 21:48, 28-08-2012 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Использование общих классов в программе и dll

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - Наследование классов и интерфейсов Tonny_Bennet Программирование и базы данных 4 10-07-2012 23:14
C/C++ - Выбор классов Glorh Программирование и базы данных 3 05-03-2011 10:11
C/C++ - Наследование и иерархия классов Wwe2012 Программирование и базы данных 4 08-02-2011 14:30
C/C++ - Возникла непонятка с виртуальными методами классов Oleg_SK Программирование и базы данных 5 12-06-2010 09:35
C/C++ - Порядок построения классов pva Программирование и базы данных 13 23-03-2009 14:36




 
Переход