У меня есть вопрос, чтобы спросить. Возможно ли, чтобы проекты ссылались друг на друга в рамках одного решения?
Например, оба проекта A и B имеют свои собственные экспортируемые функции. Проект A ссылается на проект B и проект B ссылается на проект A. Оба проекта должны были иметь доступ к экспортируемым функциям друг от друга.
Технически это было бы возможно?
Технически это возможно, но у него есть проблемы.
Когда вы строите 2 библиотеки DLL, для библиотеки DLL A требуется файл lib из B, для B требуется файл lib из A.
Вот как мы это делаем: первый проект A не зависит от B, только B зависит от A. A экспортирует 2 функции funcA1 и funcA2, в то время как мы можем собрать DLL A, затем мы можем собрать B и сгенерировать B.lib. Так как у нас есть файл B.lib, мы можем позволить A зависеть от B и добавить код для использования экспортированных функций из B. Так мы создали Circular Reference в моем реальном проекте.
Проблема в том, что когда вы очищаете все lib-файлы и перестраиваете, вы не можете. Я не фанат этого, вместо создания циклической ссылки, мы должны поместить соответствующие функции в другую DLL.
Насколько я понимаю, это невозможно. Если два проекта A и B ссылаются друг на друга, это будет один и тот же проект — неясно, какой проект сделает эту структуру необходимой.