【问题标题】:vcruntime140.dll vs vcruntime140d.dllvcruntime140.dll 与 vcruntime140d.dll
【发布时间】:2016-12-24 22:20:04
【问题描述】:

vcruntime140.dllvcruntime140d.dll这两个dll有什么区别?为什么我们需要它们?它们都是 Microsoft Visual C++ 2015 Redistributable 的一部分吗?

用谷歌搜索了很长时间,但找不到任何我能理解的东西。

一些背景知识:我有一个 C# 程序可以在 Windows 10 机器上运行,但不能在 Windows Vista 上运行,看起来这是因为我的 Windows Vista 机器上没有 vcruntime140d.dll。

【问题讨论】:

  • vcruntime140.dll 是发布版本 - 您必须在使用发布设置构建的项目中使用它。 vcruntime140d.dll 是调试版本 - 您必须在使用调试设置构建的项目中使用它。
  • D 版本一般不可再分发...
  • @JerryJeremiah 谢谢,这是正确的,原来我分发了我的应用程序和调试版本。请把它写成答案,以便我接受。
  • @AlexeiLevenkov 谢谢,所以我有 d 版本,因为我安装了 Visual Studio?
  • @Bon 是的。你应该编译发布版本来分发。

标签: c# c++ .net dll


【解决方案1】:

虽然我在微软的网站上找不到任何权威的东西,但他们总是提供每个 DLL 两个:

  • 不以d 结尾的发布版本 - 例如:vcruntime140.dll
  • d 结尾的调试版本 - 例如:vcruntime140d.dll

您需要使用正确的库,因为编译器使用的库是根据项目是使用调试还是发布设置构建的。因此,如果您使用发布设置进行编译,可执行文件将使用 vcruntime140.dll,如果您使用调试设置进行编译,则可执行文件将使用 vcruntime140d.dll

【讨论】:

猜你喜欢
  • 2016-04-01
  • 2020-04-12
  • 2015-08-28
  • 2017-01-30
  • 2017-02-27
  • 2015-10-08
  • 2020-04-20
相关资源
最近更新 更多