【问题标题】:mfc140ud.dll and vcruntime140d.dll needed for Release compilationRelease 编译需要 mfc140ud.dll 和 vcruntime140d.dll
【发布时间】:2020-02-12 23:38:35
【问题描述】:

我使用的是 Visual Studio 2019,这个项目来自 Visual Studio 的早期版本。当我尝试打开以发布模式编译的软件时,我收到有关缺少 mfc140ud.dll 和 VCRUNTIME140D.dll 的错误消息。据我了解,如果我在调试模式下编译,我应该只需要这些 DLL。这可能是什么原因造成的?

【问题讨论】:

  • 您的项目设置可能不正确。打开您的项目设置以确保发布版本链接到库的非调试版本。
  • 您的代码或您链接的库都依赖于语言运行时的调试版本。确保链接到语言运行时的发布版本,您使用的任何库的发布版本。

标签: visual-studio visual-c++ mfc visual-studio-2019 vcredist


【解决方案1】:

就我而言,您分发的是 DEBUG 版本的应用程序。“mfc140ud.dll”和“vcruntime140d.dll”的“d”后缀表明它正在寻找 MFC 库的 DEBUG 版本。

我建议你检查你的项目设置。

如果您希望您的应用程序运行不依赖于 mfc140u.dll,您可以简单地将您的应用程序与 MFC 静态链接。

【讨论】:

  • 这并没有解决核心问题,也不推荐。一旦静态链接到库,就不能再跨 DLL 边界交换 CRT 对象。 Potential Errors Passing CRT Objects Across DLL Boundaries 有详细信息。我明白你想帮忙。但是分发不明智的建议是不好的,不管你如何分割它。从名称中带有 "MSFT" 的用户帐户发布此信息,可将其获得额外可信度的几率加倍。
猜你喜欢
  • 2013-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多