У меня есть круговая зависимость между двумя функциями. Я хотел бы, чтобы каждая из этих функций находилась в собственной DLL. Можно ли построить это с помощью визуальной студии?Круговые зависимости между dll с визуальной студией
foo(int i)
{
if (i > 0)
bar(i -i);
}
-> компилируется в foo.dll
bar(int i)
{
if (i > 0)
foo(i - i);
}
-> компилируется в bar.dll
я создал два проекта в Visual Studio, один для обув и один для бара , Играя с «Литературами» и компилируя несколько раз, мне удалось получить DLL, которую я хочу. Однако я хотел бы знать, предлагает ли визуальная студия способ сделать это чистым способом.
Если foo изменяет, панель не нужно перекомпилировать, потому что я полагаюсь только на подпись бара, а не на реализацию бара. Если у обеих dll есть lib, я могу перекомпилировать новую функциональность в одну из двух, и вся система все еще работает.
Причина, по которой я пытаюсь это сделать, заключается в том, что у меня есть унаследованная система с круговыми зависимостями, которая в настоящее время статически связана. Мы хотим двигаться по направлению к dll по разным причинам. Мы не хотим ждать, пока мы очистим все круговые зависимости. Я думал о решениях и пробовал некоторые вещи с помощью gcc on linux, и там можно сделать то, что я предлагаю. Таким образом, вы можете иметь две разделяемые библиотеки, которые зависят друг от друга и могут быть построены независимо друг от друга.
Я знаю, что круговые зависимости не очень хорошие, но это не та дискуссия, которую я хочу иметь.
Очень интересный вопрос. Я знаю, что возможно, что это возможно, но я не знаю, как это сделать - я думаю, что это связано с некоторыми специальными параметрами командной строки для компоновщика ONE из dll, а другая dll должна иметь простую зависимость. – Paulius 2008-12-12 15:04:42
@PM: Если это так, то это то, что будет постоянной проблемой, забытой, неправильно сконфигурированной и т. Д. – annakata 2008-12-12 15:19:56