Setuper, внимательно вникаем в суть написаного самим же собой:
Написана программа. В программе есть некий класс Base.
Я пишу DLL-ку, которая содержит некий класс, который наследует класс Base.
Где же "ВСЯ РЕАЛИЗАЦИЯ"? Я вижу ТОЛЬКО ОДИН родительский класс, который необходимо вытащить из exe и разшарить, для совместного использования в обоих модулях. Возражения?
Идём дальше. После:
Получается что нужно весь экзешник помещать в dll.
я подчёркиваю, в контексте стоит "ВЕСЬ ЭКЗЕШНИК" и не я это написал, но как-то это автоматически в первой части было не очень очевидно - один класс = вся реализация, кривая архитектура становится очевидной. Или это нормально и логично делать исполняемый модуль зависимым от библиотеки, которая требует ВСЮ РЕАЛИЗАЦИЮ этого модуля? Внимательно вчитываемся. Офигивание оставляю на домашнее задание.
Ну и решение такой кривизны концепции в виде:
Проблема решилась использованием абстрактных классов.
я иначе как бредом назвать не могу. Ибо ООП методы могут помочь программеру улучшить свой код, сделать его более изящным, но никак не исправят кривизну и непродуманность архитектуры взаимодействия модулей. А если экзешник и библиотека вобще без ООП созданы? Как тогда будет решаться эта круговая порука? Или без ООП нельзя программировать? Алгоритм, если это хороший алгоритм, должен работать в обоих случаях. А иначе это уже не искусство, а ремесло. Сделал а лишь бы как, работает и ладно. Подогнал под ответ в 80% случаев, а на остальное наплевать. Тем паче, что всегда можно на операционку свалить, мы то ведь сами белые и пушистые.
А если же вопрос изначально подразумевал под собой нечто другое, то тогда и формулировать его надо было иначе. Золотое правило: каков вопрос, такой и ответ.
В озвученой формулировке я своё мнение высказал. А каждый вправе поступать так как считает нужным согласно своей опытности и уровня образованности, а на бессмысленные дискуссии у меня нет, не было и не будет времени.