在项目之间共享源代码[VS2008,C ++]

时间:2009-08-25 17:02:23

标签: visual-c++

如何在MS Visual Studio 2008中的两个项目之间共享源代码(我用C ++编程)? 在我的例子中,我有主游戏项目的代码,现在我想制作一个使用游戏代码的简单模型编辑器,这样每当我在一个项目中更改/添加一些代码时,它将在第二个项目中更新。

3 个答案:

答案 0 :(得分:8)

执行此操作的常用方法(您将在开源软件包中随处可见)是将所有标头捆绑到“include”文件夹中,并将所有源捆绑到“source”文件夹中。

现在,在任何需要代码的项目中,您可以转到“项目属性 - > c / c ++ - > General->其他包含目录”。然后将路径添加到'include'目录。最后,将源/头添加到项目中,现在两个项目都引用完全相同的文件,这些文件位于一个漂亮整洁的共享位置。

您还可以将共享代码构建为静态库,或者更好(IMO)构建DLL。这包括创建一个新项目,并在VS 2008中学习一些关于链接器的内容,但实际上并没有太复杂。这也有一个优点(在DLL的情况下),两个项目不会重新编译相同的代码,而是编译一次并使用两次。

答案 1 :(得分:1)

您可以将所需的类移动到单独的库项目中,然后从第二个项目中引用它。任何更改都将自动获取。

(我不是C ++开发人员,但上面适用于C#项目,我认为它也适用于C ++项目)

答案 2 :(得分:1)

您基本上有两个选择:

  1. 创建一个静态库。在这种情况下,库中的所有代码都将被导出,并且可以链接到该库。
  2. 创建DLL:在这里,您可以定义要导出和使用的类和方法。
  3. 假设您有一个名为classA的类,它在classA.h中定义并在classA.cpp中实现,并且您希望在两个不同的应用程序(应用程序B和应用程序C)中使用同一个类。

    使用方法1,您可以通过转到file-> new win32项目来创建静态库,然后在弹出的框中选择应用程序设置并将其设置为“静态库”。然后在这个静态库中添加classA.h和classA.cpp。

    要在应用程序B或C中使用此静态库,请转到引用并添加对刚刚创建的静态库项目的引用。然后在你的应用程序中包含classA.h(不要忘记设置额外的include目录路径),你就可以了。

    对于DLL来说,这种方法非常相似,这里的区别在于您可以选择导出DLL中代码的哪些部分(即对外部调用者可见)。

    从整体的角度来看: 使用静态库方法,您的代码将被编译到两个应用程序中。

    使用DLL方法,只有一个共享代码的副本(在DLL中将是一个单独的文件),这将根据需要加载。