Я работаю над тем, чтобы приложение было реализовано с использованием большего количества плагиновой системы.C++ Избегание или управление циклической зависимостью проекта в MSVC
Это приводит к тому, что у меня есть мое основное приложение EXE (или DLL, но я не думаю, что это должно быть), который экспортирует все символы для основных функций.
У меня тогда есть DLL плагина, которому нужно экспортировать простой IPlugin* createPlugin();
, чтобы плагин можно было динамически загружать во время выполнения и ссылаться на основное приложение для методов утилиты и класса (я не планирую их обертывать виртуальными интерфейсы для работы через IPlugin, и, во всяком случае, есть вещи, которые действительно выигрывают от inlining).
Получение этого правильно построенного достаточно просто, создайте приложение, чтобы получить библиотеку импорта, а затем создайте плагины.
Однако проблема, которую я хотел бы решить, является простой, если я в MSVC IDE и имею приложение в качестве запуска проекта и запускаю его («Начать [Без] отладки») Я хочу обеспечить что любые проекты плагинов сначала полностью создаются (просто чтобы избежать ошибок, которые заканчиваются запуском старого кода).
IIRC вы щелкните правой кнопкой мыши Solution Solution и перейдите в окно Depends Project. Существует список, который показывает все проекты в решении и позволяет указать, какие проекты зависят от того, что. – Qix
Ваше имя совершенно вводит в заблуждение. В описании проблемы нет циклической зависимости. –
@Qix Конечно, это основное решение, но если вы попытаетесь, вы бы знали, что MSVC специально запрещает круговую зависимость проекта. @D Drmmr В случае с проектом IDE, если вы просто запускаете и не нажимаете кнопку решения сборки, если у вас есть лучший заголовок, не стесняйтесь редактировать/предлагать его ... –