在同一解决方案下使用其他项目中的一个项目的功能

时间:2011-07-19 06:54:56

标签: visual-c++

我在相同的解决方案prj1(基于控制台)和prj2(基于表单)下有两个VC ++项目。我想在按钮点击的“prj2”中使用“prj1”中的自定义函数(add(int a,int b))。我不想创建新项目,即我只想组合现有项目。我正在使用Visual Studio 2005 可以任何身体帮助我。

3 个答案:

答案 0 :(得分:2)

如果两个项目都生成可执行文件(如在一个控制台应用程序和一个Windows应用程序中),则无法导出这些函数。

由于您已经声明您不想要其他项目,因此有两种选择:

  1. 复制每个项目中包含一个副本的代码
  2. 在项目之间共享代码(包括两个项目中必要的标题和源文件)。
  3. 首选选项2,因为它有助于代码维护,具有该代码的一个位置。

    最好的选择是将共享代码抽象为可以与两个项目链接的库,但是您已经说过这不是一个可行的选择。我会问 - 为什么不呢?

答案 1 :(得分:0)

很抱歉这个愚蠢的问题,但VS 2005是否有解决方案文件的概念?我知道在C#中你可以将多个项目添加到一个解决方案中,只要你使用正确的命名空间访问它们(当然,类/方法是公共的和可见的),你可以在一些实例化之后使用它们。也许VS 2005你可以在一个解决方案中加载这两个项目并以这种方式得到它们?但是自从我使用VS C ++ 2005

以来已经有很长一段时间了

答案 2 :(得分:0)

这完全取决于函数add的依赖性级别。如果它是自包含的函数(如排序),你可以在另一个项目中使用striaghtaway,如Chad在第2点中所建议的那样。如果函数具有依赖性(表单,类别其他东西),则可能遇到麻烦。您可能还需要将所有这些共享到另一个项目中。在这种情况下,您可以将所有共享代码放入DLL(或静态库),从两个项目中删除,并在两者中添加该DLL / LIB的引用项目。

  • 项目DLL - 具有add和其他相关功能/类
  • 项目A,项目B - 链接到项目DLL