如何在 Visual Studio 中将 C++ 项目拆分为两个?

How to split a C++ project into two in Visual Studio?

场景一

解决方案 SolA 仅包含 1 个名为 PrjA 的项目。
PrjA为Win32控制台应用程序,编译结果为PrjA.exe.

如何将PrjA中的源代码文件拆分成PrjA1PrjB,这样源代码的管理更容易,而编译结果,PrjA1.exe, 将与 PrjA.exe?

几乎相同

例如,我有 PrjA :-

我希望将 PrjA 分成 2 个项目 :-

我不确定如何设置 PrjB 或者它的编译结果会是什么。
假设 PrjB 编译为 PrjB.DLL,大小为 100KB,我希望 PrjA1.exe 会以某种方式将 PrjB.dll 嵌入自身。因此大小为 400KB。
我不想要 300KB PrjA1.exe,它会在运行时动态地 link 到 100KB PrjB.dll

问题:PrjB怎么设置,PrjA1PrjB之间的link怎么设置?

场景 2

同场景一,只是这一轮PrjA的编译结果是一个windows DLL,名称为PrjA.dll,请问如何将PrjA拆分成PrjA1PrjB?

开发环境是Visual Studio2013下windows7 64位,但是编译结果是32位。

这就是将现有代码移动到静态库中的方法。我用的是VS2015,应该和VS2013是一样的,但是我查不到。我从以下解决方案结构开始:

首先要做的是将新项目添加到解决方案中。 File -> Add -> New project -> Win32 Project

选中静态库并取消选中预编译头文件

然后在两个项目的解决方案资源管理器中单击显示所有文件图标。这将关闭过滤器并按原样显示项目文件夹。它应该是这样的:

将所有需要的文件从一个项目拖放到另一个项目:

现在引用您的图书馆。取消选中显示所有文件图标以显示引用。 Right click -> Add reference 并检查您的静态库项目:

最后要做的是将 include 目录添加到使用该库的项目中。这是在项目属性中完成的。请务必检查所有配置和所有平台:

就是这样。现在,当您构建解决方案时,VS 会构建您的静态库、构建您的主项目并将它们链接在一起。结果应该是相同的,就好像一切都在同一个项目中一样。