Microsoft Visual Studio 2012 C ++循环参考

时间:2014-12-22 14:48:46

标签: c++ visual-studio-2012 circular-reference

我有一个问题要问。项目是否可以在同一解决方案下相互引用?

例如,项目A和B都有自己的导出功能。项目A引用项目B,项目B引用项目A.两个项目都需要相互访问导出的函数。

从技术上讲,这可能吗?

2 个答案:

答案 0 :(得分:1)

据我了解,这是不可能的。如果两个项目A和B相互引用,它们将是同一个项目 - 不清楚哪种项目会使这个结构成为必要。

答案 1 :(得分:1)

从技术上讲,这是可能的,但它有问题。

当你构建2个DLL时,DLL A需要B的lib文件,B需要A的lib文件。

以下是我们如何做到的:第一个项目A不依赖于B,只有B依赖于A.导出2个函数funcA1和funcA2,而我们可以构建DLL A,然后我们可以构建B并生成B的.lib。由于我们有文件B.lib,那么我们可以让A依赖于B并添加代码以使用B中的导出函数。这就是我在现实生活项目中创建循环引用的方式。

问题是:当您清理所有lib文件并进行重建时,您不能。我不喜欢这个,而不是创建循环引用,我们应该把相关的函数放到另一个DLL中。