如何在Visual Studio中的项目之间共享C ++源代码文件?

时间:2014-09-22 18:10:07

标签: c++ visual-studio-2013 windows-phone c++-cli

我正在编写一个跨平台的应用程序。一个版本将在Win32下运行,第二个版本在Windows Phone上运行。

我想重用我的C ++核心 - 尤其是内部没有平台依赖,仅限STL。我命令这样做,我想在两个项目中使用相同的源文件:静态Win32库(.lib)和Windows Phone组件(C ++ / CLI)。

如何配置这两个项目以使用完全相同的源文件和头文件?


好的,我们举个例子。 比方说,我有项目:

MyApp.Library [win32 lib]
    myClass.cpp
    myClass.h

将此库编译为.DLL文件,然后在Win32应用程序中导入:

MyApp.Win32App [win32 C#]

由于win32与二进制级别的Windows Phone不兼容,我无法直接使用该lib。但由于Library只使用STL,我可以创建Windows Phone组件,将所有源代码放在那里并构建。

MyApp.Component [WinPhone component]
    myClass.cpp
    myClass.h

我希望这两个文件与库中使用的文件完全相同。我应该如何组织项目来实现这种效果?

2 个答案:

答案 0 :(得分:5)

您可以将公共位置的源代码添加到多个项目中。我做了很多;我的代码位于一个公共目录中,该目录与目录层次结构中的大多数项目文件位于同一级别。只需将公共目录中的.h和.cpp文件添加到各种项目中即可。

我注意到如果你使用网络驱动器作为公共源,VisualStudio会有点胡思乱想,所以我不这样做。但只要您的所有源代码都在本地磁盘上,并且IDE知道在哪里找到它们,就可以在很多项目中使用相同的源文件。

答案 1 :(得分:0)

一种方法是将所有.hpp和.cpp文件放入一个单独的文件夹中 - 称之为“共享”。

然后在解决方案配置属性中添加一个额外的include Directory - 此目录必须是相对路径。

然后将相对于该共享文件夹的.cpp文件添加到项目中

NB!如果您在共享文件夹中的.cpp文件中包含“stdafx.h”,则将其注释掉。