Tengo una dependencia circular entre dos funciones. Me gustaría que cada una de estas funciones residan en su propia dll. ¿Es posible construir esto con Visual Studio?dependencias circulares entre dlls con visual studio
foo(int i)
{
if (i > 0)
bar(i -i);
}
-> debería compilar en foo.dll
bar(int i)
{
if (i > 0)
foo(i - i);
}
-> debería compilar en bar.dll
He creado dos proyectos en Visual Studio, uno para foo y uno para la barra . Al jugar con las 'Referencias' y compilar algunas veces, logré obtener el dll que quiero. Sin embargo, me gustaría saber si Visual Studio ofrece una forma de hacerlo de una manera limpia.
Si cambia foo, la barra no necesita ser recompilada, porque solo dependo de la firma de la barra, no de la implementación de la barra. Si ambos dll tienen presente la lib, puedo recompilar la nueva funcionalidad en cualquiera de los dos y todo el sistema aún funciona.
La razón por la que intento esto es porque tengo un sistema heredado con dependencias circulares, que actualmente está vinculado estáticamente. Queremos avanzar hacia dll por varias razones. No queremos esperar hasta que limpiemos todas las dependencias circulares. Estaba pensando en soluciones y probé algunas cosas con gcc en Linux y allí es posible hacer lo que sugiero. De modo que puede tener dos bibliotecas compartidas que dependen unas de otras y pueden construirse independientemente una de la otra.
Sé que las dependencias circulares no son buenas, pero esa no es la discusión que quiero tener.
Pregunta muy interesante. Sé que algo puede gustar esto es posible, pero realmente no sé cómo, creo que implica algunos parámetros especiales de línea de comandos para el enlazador de UNO de los dll y el otro dll debería tener una dependencia simple. – Paulius
@PM: si ese es el caso, entonces es el tipo de problema que será olvidado constantemente, mal configurado, etc. – annakata