Я пытался реализовать стек протоколов, используя шаблон проектирования уровня протокола: http://www.eventhelix.com/realtimemantra/patterncatalog/protocol_layer.htm
В нашем проекте все слои представлены в виде отдельных dll. У меня есть следующие слои:
DLL уровня приложения
LLC Layer dll
DLL уровня MAC
DLL физического уровня
У меня есть еще один проект в том же решении, который реализует шаблон проектирования и имеет реализации общих функций уровня протокола. Все мои слои наследуются от класса Protocol Layer Base. Зависимость между проектами выглядит следующим образом: DLL шаблона проектирования уровня протокола: Нет зависимости DLL физического уровня: DLL шаблона проектирования протокола DLL уровня MAC: DLL шаблона проектирования протокола и DLL физического уровня DLL уровня LLC: DLL шаблона проектирования протокола и DLL уровня MAC Уровень приложения dll: dll шаблона проектирования протокола и dll LLC Layer
В зависимости от шаблона проектирования каждый наш слой имеет указатели на слой выше и ниже него. И поток, который мы разработали, выглядит следующим образом: в конструкторе уровня приложения мы создаем объект уровня LLC, затем уровень LLC создает уровень Mac, а уровень MAC, в свою очередь, создает физический уровень. Все они связаны с помощью указателей.
DLL проекта My Protocol Design Pattern и DLL физического уровня строятся правильно. Но другие сборки dll выдают ошибку компоновщика. Произнесение неразрешенных внешних элементов конструктору нижележащего слоя. Это ошибки, которые я получаю.
==================================
- Как вы строите exe? Я вижу, вы столкнулись только с проблемами компоновщика. Либо вы ссылаетесь в неправильном порядке, либо что-то пошло не так. Попробуйте связать их в правильном порядке. Это должно решить проблему. Если нет, предоставьте дополнительную информацию.