在一个解决方案中共享课程

时间:2017-03-22 18:25:09

标签: c++ visual-studio

我正在开发一个实用程序(用于练习),它有两个用户可以运行的工具。

我想知道解决方案中是否有外层,我可以构建所有解决方案项目所识别的类。

我已经完成了两个工具,我想将这两个项目添加到一个解决方案中。但是,这些工具可以共享一些非静态类,我真的希望避免为每个项目使用多个相同的.cpp / .h文件,所以如果我需要编辑或添加到共享类,我不会这样做。必须将编辑内容复制/粘贴到每个项目中。

我尝试使用资源文件,但他们不会添加.h或.cpp文件。我尝试将类添加到他们自己的项目中,然后在其他项目中将它们用作引用,但其他项目中的类不会识别它们。我也在考虑创建一个库,但我不确定是否可以创建非静态库,因为这些项目将具有共享类的多个对象。

我非常直观,我不确定我是否能很好地解释我的问题,所以这里是我想要的简单图表。每个箭头显示每个项目可以"了解"可以这么说(概念上类似于类继承)。大胆的First Project是解决方案的入口;基本上只是用户指定运行哪个工具的地方。

File structure diagram

1 个答案:

答案 0 :(得分:1)

From what you described a class library would be the solution. This would allow you to share your two classes between both projects. In C++ there are two types of class libraries the Static Link Library and the Dynamic Link Library.

Here is a nice answer from a previous StackOverflow question which should aid you in determining which type of class library to use.

I have also included two separate links from Microsoft, since you tagged your post with Visual Studio, on how to create and use a library of each type.

MSDN: Static Link Library Tutorial

MSDN: Dynamic Link Library Tutorial