【问题标题】:What development environment is required to target `C++ 2008 Redistributable`?以“C++ 2008 Redistributable”为目标需要什么开发环境?
【发布时间】:2013-03-19 15:51:03
【问题描述】:

上周我继承了一个遗留的非托管 C++ 应用程序。

很遗憾,项目设置并非 100% 可靠,并且没有文档。我所知道的是该产品是使用 Microsoft Visual C++ 2008 Redistributable x86 部署的。

我的问题是:您建议使用哪种 IDE、SDK 和 Platform ToolSet 组合?

很遗憾,我以前没有使用过 Windows SDK,而 Platform ToolSet 选项对我来说是新的。更糟糕的是,我已经八年没有写过一行 C++ 代码了!所以......您可以提供的任何反馈将不胜感激:D

知道

  • 客户端操作系统
    • Windows 2008 R2
  • C++ 可再发行组件
    • Microsoft Visual C++ 2008 Redistributable x86 已部署在生产环境中
  • 集成开发环境 (IDE)
    • 我更喜欢使用 Visual Studio 2012(我们还有:Visual Studio 2008、2010、2012)

未知

  • 平台工具集
    • 我可以使用 VS2012 并针对 v90 平台,还是简单地使用 VS2008 更稳定?
  • Windows SDK
    • 如果客户端在生产环境中使用Microsoft Visual C++ 2008 Redistributable x86,我应该在开发机器上安装哪个version of the Windows SDK?

【问题讨论】:

  • “当前项目设置不是100%可靠”是什么意思?
  • 我会选择最旧的受支持版本,除非您打算升级很多螺母和螺栓
  • @ZDeslav “当前的项目设置不是 100% 可靠的” = 该产品早在我之前就已经出自我的时代了,我有理由相信其他开发人员在没有完全理解的情况下更改了 project configuration他们在做。
  • @sehe:“我会选择最旧的支持版本”这是否意味着 IDE=Visual Studio 2008 + SDK=Windows Server 2008 & .NET 3.5 SDK (v6.1)

标签: c++ visual-studio visual-studio-2012 winapi


【解决方案1】:

我会开始尝试让项目在 Visual Studio 2008 中成功编译,因为您提到您已经拥有该项目。

我不会费心尝试安装另一个版本的 Windows SDK(一个与 VS 2008 捆绑在一起的)除非您无法让项目在外部环境中成功编译-box 安装 VS 2008。如果没有,并且您确实想尝试安装 SDK 的另一个版本,我会选择version 7.1,即针对 Windows 7 的版本。

使用 6.1 版的 SDK 不太可能有任何优势;新版本可能会添加新功能,但它们通常保留与旧版本的向后兼容性。但是,我不会安装任何版本的 Windows 8 SDK,因为这最终可能会让开发人员感到困惑。

在 VS 2008 上一切就绪后,如果您愿意使用 VS 2012,可以尝试切换到 VS 2012。 (我仍然无法习惯 UI,但显然 有人 喜欢它。)正如您在问题中指出的那样,使这项工作正常工作的最简单方法是定位“v90”,这是 VS 2008(使用平台工具集选项设置)。这基本上允许您使用 VS 2012 shell 进行编辑,但使用 VS 2008 编译器和头文件进行构建。但是,您不会获得 VS 2012 引入的任何 C++11 功能,因为您没有使用新版本的编译器;你会被 VS 2008 支持的东西卡住。

【讨论】:

  • @CodyGrey – 如果您不介意,我有一个补充问题。至少有三种不同的方式为编译器提供依赖位置(例如库和头文件)1 环境变量(例如 %lib% 和 %include%)2 Configuration Properties=>VC++ Directories 和 3 Configuration Properties=>…=>Additional Include Directories... 在定义 Windows SDK 的位置时,推荐的方法是什么?我问的原因是给我的开发者机器已经安装了多个SDK(v5.0、v6.0A、v7.0A、v7.1A、v8.0、v8.0A)。
  • @Pressacco 嗯,我不知道。我希望你没有使用已经安装了所有东西的机器。事实是,我会确保所有这些都设置正确。通常,数字 2 是您要配置的。编号 3(附加包含目录)通常不用于 Windows SDK 之类的基本内容,而是仅用于少数单个项目的库。我从不改变我的环境变量;我总是只使用我安装的最新版本的 SDK。 Windows 标头很好地使用条件编译来启用下游定位。
  • @CodyGrey - 感谢您抽出宝贵时间回复我的询问。非常感谢您的想法/cmets:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
相关资源
最近更新 更多