如何在Visual Studio中将C ++项目一分为二?

ath*_*hos 0 c++ projects-and-solutions visual-studio

场景1

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

如何将源代码文件拆分PrjAPrjA1PrjB,以便源代码的管理更加轻松,而编译结果PrjA1.exe与几乎相同PrjA.exe

例如,我有PrjA:-

  • PrjA有300个.cpp文件。
  • PrjA.exe 大小400KB。

我希望PrjA分为两个项目:

  • PrjA1有200个.cpp文件
  • PrjB有100个.cpp文件。
  • PrjA1.exe 也约为400KB。

我不确定如何设置PrjB或它的编译结果是什么。
假设PrjB编译为PrjB.DLL100KB,大小,希望PrjA1.exe以某种方式嵌入其PrjB.dll内部。因此,大小为400KB。
我不需要300KB PrjA1.exe,它将PrjB.dll在运行时动态链接到100KB 。

问:我应如何设置PrjB,我应如何设置之间的联系PrjA1PrjB

方案2

与方案1相同,只是这一轮PrjA的编译结果是一个Windows DLL,名为PrjA.dll,该如何拆分PrjAPrjA1PrjB

开发环境为Windows 7 64位下的Visual Studio 2013,但编译结果为32位。

小智 5

这是将现有代码移入静态库的方式。我使用VS2015,它应该与VS2013相同,但是我无法检查。我从以下解决方案结构开始: 初始解决方案结构,一个项目中的所有代码

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

检查静态库并取消选择预编译头 Win32应用程序向导

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

将所有需要的文件从一个项目拖放到另一个项目: 搬迁后的项目结构

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

最后要做的是将包含目录添加到使用该库的项目中。这是在项目属性中完成的。确保检查所有配置和所有平台: 在此处输入图片说明

而已。现在,当您构建解决方案时,VS会构建静态库,构建主项目并将它们链接在一起。结果应该与所有项目都在同一项目中一样。