Циркулярная справка по Microsoft Visual Studio 2012 C ++

У меня есть вопрос, чтобы спросить. Возможно ли, чтобы проекты ссылались друг на друга в рамках одного решения?

Например, оба проекта A и B имеют свои собственные экспортируемые функции. Проект A ссылается на проект B и проект B ссылается на проект A. Оба проекта должны были иметь доступ к экспортируемым функциям друг от друга.

Технически это было бы возможно?

4

Решение

Технически это возможно, но у него есть проблемы.

Когда вы строите 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.

1

Другие решения

Насколько я понимаю, это невозможно. Если два проекта A и B ссылаются друг на друга, это будет один и тот же проект — неясно, какой проект сделает эту структуру необходимой.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector