我正在编写一个跨平台的应用程序。一个版本将在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
我希望这两个文件与库中使用的文件完全相同。我应该如何组织项目来实现这种效果?
答案 0 :(得分:5)
您可以将公共位置的源代码添加到多个项目中。我做了很多;我的代码位于一个公共目录中,该目录与目录层次结构中的大多数项目文件位于同一级别。只需将公共目录中的.h和.cpp文件添加到各种项目中即可。
我注意到如果你使用网络驱动器作为公共源,VisualStudio会有点胡思乱想,所以我不这样做。但只要您的所有源代码都在本地磁盘上,并且IDE知道在哪里找到它们,就可以在很多项目中使用相同的源文件。
答案 1 :(得分:0)
一种方法是将所有.hpp和.cpp文件放入一个单独的文件夹中 - 称之为“共享”。
然后在解决方案配置属性中添加一个额外的include Directory - 此目录必须是相对路径。
然后将仅相对于该共享文件夹的.cpp文件添加到项目中
NB!如果您在共享文件夹中的.cpp文件中包含“stdafx.h”,则将其注释掉。