我正在尝试将现有的c ++应用程序的源代码导入visual studio,以利用某些特定的MS工具。然而,在网上搜索并使用visual studio进行搜索之后,我似乎无法找到一种简单的方法将现有的c ++源代码导入visual studio并保持其结构完整。
我确实找到的导入容量使目录变平并将它们全部放入一个项目中。我错过了什么吗?
(这是所有非托管C ++,包含win / unix的特定版本)
答案 0 :(得分:13)
如果没有加载项目/解决方案,在Visual Studio 2005中我会看到以下菜单项:
档案>现有规范的新项目......
关注向导后,问题解决了!
切换“显示所有文件”按钮显示包含所有目录和文件的完整层次结构。
如果“现有代码中的新项目...”选项不可用,则需要在“工具”>中添加它。自定义...
答案 1 :(得分:9)
我不知道在给定的约束下有任何通用解决方案 - 特别是必须从源树创建许多项目。
我看到的最佳选择实际上是通过某些脚本创建项目文件。
一个非常简单的方法是将文件列表,项目名称等用“奇怪的标记”填充,然后用你的生成器填充它们。如果你想成为好人,你当然可以使用一些XML处理库。
我们的经验:我们实际上不再将.vcproj和.sln存储在存储库(git)中,而是将一个python脚本与VS一起从源树中重新生成它们2008“属性表模板”(或其他任何称为)。这有助于进行大量调整。
项目生成脚本包含有关所有项目专业的信息(例如,他们使用MFC / ATL,是否会创建DLL或EXE,要排除的文件)。
此外,此脚本还包含依赖项,这些依赖项将提供实际的构建脚本。
这很有效,问题很小:在构建系统中需要python,不要忘记重新生成项目文件,我必须学习一些python来调整某些项目。
@Michael Burr “你可能需要的python脚本和支持'模板'有多复杂?”
老实说我说不出来,因为我把任务交给了另一个开发者(谁选择了python)。最初的任务是提供构建脚本,因为VS2008解决方案构建不能满足我们的需求,旧的批处理文件不支持并行化。后来添加了.vcproj
代。据我所知,他的脚本从头开始生成.vcproj和.sln文件,但从单独的属性表中提取所有设置。
<强>优点:强>
即时添加新配置。一些项目已经有六种配置,并且规划unicode支持意味着考虑将它们加倍一段时间。一些笨拙的工具仍然构建为MBCS,因此一些libs现在有8个配置。手动配置是痛苦的,现在它不再困扰我了。
全球变化,例如移动相关的项目路径,临时文件的文件夹和最终的二进制文件,直到找到我们满意的解决方案
建立稳定性。由于各种原因,合并VC6项目文件是一个值得注意的错误来源,而且VC9项目文件看起来并不好看。现在事情看起来更好了:属性表中的编译/链接设置,脚本中的文件处理。此外,该脚本主要列出来自我们默认的变体,最终比项目文件更容易阅读。
一般来说:当你的项目已经建立,它们相当稳定,你没有真正的问题时,我看不到很大的好处。但是,当进入 unknown 时(对我们来说:主要是VC6 - > VC9和Unicode版本),灵活性大大降低了实验的风险。
答案 2 :(得分:2)
创建一个新的空解决方案并将源代码添加到其中。
例如,
文件&gt;最新及GT;项目... Visual C ++&gt; Win32&gt; Win32控制台应用程序 应用程序设置&gt; - 取消选中“预编译标题” - 选中“清空项目”
然后创建项目。要添加现有代码:
项目&gt;添加现有项目...&gt; - 选择要添加的文件
重新编译,完成!
答案 3 :(得分:1)
在“解决方案资源管理器”中,您可以单击“显示所有文件”按钮,让Visual Studio显示文件系统上存在的文件(目录和所有文件)。
在我看来,这是一个不完美的解决方法,但我相信它是最好的。我不知道插件,宏或其他工具,它会将目录导入到具有镜像文件系统的文件夹的实际项目中。
答案 4 :(得分:1)
我知道这个问题已被标记为正确,但我可以通过“文件” - &gt;将现有代码导入到使用Visual Studio 2008的项目中。 “现有代码的新项目”。保留了我的代码的目录结构。
答案 5 :(得分:1)
您始终可以从项目菜单中切换视图
例如。项目 - &gt;显示所有文件
以上将以未格式化的原始文件系统顺序显示文件
不确定旧版本,但它适用于VS 2010
答案 6 :(得分:0)
我理解你,我遇到了同样的问题:许多.cpp和.h文件组织在许多文件夹和子文件夹中,包含为此文件夹结构编写的包含路径。将源文件与文件结构一起导入的唯一方法是使用“显示所有文件”,然后右键单击文件夹并选择“在项目中导入”。当我使用C-Sharp项目时,这对我有用。但它不适用于我的C ++项目。我还在寻找解决方案......