|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Использование общих классов в программе и dll |
|
C/C++ - Использование общих классов в программе и dll
|
Старожил Сообщения: 467 |
Профиль | Отправить PM | Цитировать Ситуация: имеется набор классов, которые должны использоваться и в программе, и в dll (плагины). Я так понимаю, тот набор классов должен быть оформлен в отдельную dll? Или можно как нибуть сделать, что бы ихняя реализация содержалась в программе (сделать, что бы в нашем ехе файлы были экспортируемые классы, функции и тд и тп)?
|
|
------- Отправлено: 19:16, 14-08-2012 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать Не понятно. Опишите подробнее, что вы хотите сделать
|
Отправлено: 21:02, 14-08-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать Я конкретно ничего не хочу сделать, просто академический интерес . Но для примера:
есть код класса Point: Данный класс должен использоватся и в программе, и в dll. Вот думаю, можно оформить все подобные классы в отдельную dll, и импортировать их оттуда... Можно сделать интерфейс Point(чисто виртуальные функции), и использовать интерфейс в работе, а не конкретную реализацию(VTABLE решит, где и как дергнуть нашу реализацию). Но мне интересно, можно ли как нибуть сделать, что бы класс был без виртуальных методов, но и что бы реализация методов была только в иполняемом файле(а то можно включить реализацию и в исполняшку, и в dll, но таким образом выходит дублирование кода, не хорошо однако)? |
------- Отправлено: 13:14, 15-08-2012 | #3 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать crashtuak, по хорошему, конечно, лучше весь дублирующийся код выносить в библиотеки dll, тогда и отладка будет проще, и не надо будет компилировать по новой основную программу, добавив 1 строку кода.
Можно и интерфейсом, но смысла в этом не больше, чем классом "внутри" программы. Все равно в итоге придется пересобирать весь проект. |
------- Отправлено: 14:05, 15-08-2012 | #4 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать crashtuak, самый простой способ реализации - callback. Можно передать в dll указатели на функции-конструкторы классов, возвращающие указатели на виртуальные интерфейсы
|
|
Отправлено: 21:48, 28-08-2012 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
.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 |
|