【问题标题】:Which version(s) of the redistributables do I need to distribute?我需要分发哪些版本的可再发行产品?
【发布时间】:2019-03-30 03:27:22
【问题描述】:

两个相关问题:

  1. 我有一个想要分发的 32 位 MFC 程序,我希望它在 32 位或 64 位 Windows 下运行。我是否可以只包含 x86 可再发行组件,因为我的程序是 32 位的,或者我是否需要同时包含 x86 和 x64 可再发行组件,因为用户机器可以运行 32 位或 64 位 Windows?
  2. 虽然我的代码是使用 VS2017 编译的,但我必须包含一个我怀疑可以追溯到 2010 年左右的外部 DLL。我需要包含来自旧版本 VS 的可再发行组件,还是最新版本包含所有以前的?具体来说,用户报告我的应用程序在安装我的应用程序(包括 VS2017 x86 可再发行组件)后无法运行并显示消息“msvcp110.dll is missing”。 谢谢你的帮助。我希望我可以使用干净的 Windows 机器来尝试一下,但我没有。

【问题讨论】:

  • 虽然我的代码是使用 VS2017 编译的,但我必须包含一个我怀疑可以追溯到 2010 年左右的外部 DLL。 这可能是一个严重的问题。 Visual Studio 2017 仅与 VS 2015 兼容。没有其他版本的 Visual Studio 兼容。请务必隔离跨 dll 边界的内存分配。并且不要在任何 dll 接口中使用标准库。
  • 不是真的,取决于它是如何编写的。如果在库内正确分配和释放,没问题。

标签: c++ mfc version backwards-compatibility redistributable


【解决方案1】:
  1. 您只需要 32 位可再发行组件。它们在 64 位机器上运行良好,这与执行需要 64 位 CPU 的 64 位代码不同。

  2. 如果此 DLL 需要可再发行组件,您也需要发布它。 VS2017 仅支持 VS2015 可再发行组件,不支持之前的那些。对于VC110,好像是VS2012。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-09
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 2013-11-13
相关资源
最近更新 更多