【发布时间】:2014-09-22 18:10:07
【问题描述】:
我正在编写一个跨平台的应用程序。一个版本可以在 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 不兼容,我无法直接使用该库。但由于该库仅使用 STL,因此我可以创建一个 Windows Phone 组件,将其所有源代码放在那里,然后进行构建。
MyApp.Component [Windows Phone component]
myClass.cpp
myClass.h
我希望这两个文件与库中使用的文件完全相同。我应该如何组织项目来达到这个效果?
【问题讨论】:
-
想评论否决票?
-
如何在一个解决方案中包含主要应用程序和库,并为所有这些应用程序提供匹配的构建配置?
-
我不是反对者,但在这里真的很难看出问题所在。
-
@Spook 不是这里的反对者之一,但你的问题似乎仍然有点不清楚。
-
@Spook 至于您的编辑:(我实际上对 VS 不太熟悉)看起来您需要从相同来源创建的库的两个二进制版本。通常(正如我之前提到的),您的库项目将有 2 个不同的构建设置来匹配它应该链接的内容。我不确定 VS 解决方案是否可以通过相同的解决方案引用项目导入匹配他们的构建设置;但我猜是的。
标签: c++ visual-studio-2013 windows-phone c++-cli