什么是 MSVCP100D.dll? [复制]

Posted

技术标签:

【中文标题】什么是 MSVCP100D.dll? [复制]【英文标题】:What is MSVCP100D.dll? [duplicate] 【发布时间】:2011-07-05 09:43:21 【问题描述】:

可能重复: Application has failed to start because MSVCP100D.dll was not found, reinstalling app may help…

我使用 Microsoft Visual C++ 2010 Express Edition 编译了我的程序,并尝试在另一台没有相同编译器的机器上运行它。

当我双击它时,有消息说 MSVCP100D.dll 文件丢失。

这是什么类型的文件? 为什么应用程序无法启动? 如何在此处启动应用程序?

【问题讨论】:

@Alf P. Steinbach 怎么是重复的问题? 你试过谷歌搜索吗?试试 [this] 例如...(cboard.cprogramming.com/cplusplus-programming/…) 是的,我尝试 google。我无法得到我想要的 @enjay 我在链接中找不到任何好的答案。您应该在提供该链接之前阅读。 @Jon 你为什么删除你的答案? 【参考方案1】:

这是 C++ 运行时库 dll。您使用的是调试版本,在用户的计算机中找不到该版本。在发布模式下编译您的程序。这将在最有可能存在的 MSVCP100.dll 中添加一个依赖项。

在任何情况下,您都必须确保该 dll 将存在于用户的机器中。您可以通过创建安装程序或提示用户安装 Microsoft Visual C++ 2010 Redistributable Package 来做到这一点。

总结:

在发布模式下编译代码 创建安装程序或使用其他方式将所需的 dll 复制到用户的计算机上

【讨论】:

实际安装依赖项怎么样,而不是仅仅切换到一个不太常见的依赖项,并祈祷其他人为你安装它? Visual C++ express 无法创建安装程序包,因此唯一的选择是链接到 VC++ 2010 可再发行包:microsoft.com/download/en/details.aspx?id=5555 @jalf msvcp100d.dll 因为所有其他 d dll(来自 VS)不应该被重新分发,除非您希望在目标 pc 上调试进程。 MS 推荐的方法是在发布模式下编译并为您的运行时组件安装 vcredist.exe。在这种情况下是 2010 年。 @RedX:你错过了我的意思:切换到发布模式,正如@kgiannakakis 建议的那样,不能可靠地解决问题。无论您的依赖项是什么,您都需要确保它们存在于目标计算机上。 @jalf 你的帖子,至少对我来说,建议提供调试版本。我只是想澄清一下,推荐的方法是使用发布模式和 vcredist。【参考方案2】:

如果改为静态链接您的程序呢?我这样做是为了避免这种麻烦(要么创建安装程序,要么要求用户安装另一个软件包,并且必须将它们指向/指向那个方向)

【讨论】:

【参考方案3】:

我猜你必须从here 下载并安装重新分发包,才能安装编译代码所需的运行时环境。

DLL 包含额外的函数,这些函数在您运行程序时被链接。如果此 DLL 不存在,您会收到您遇到的错误消息。

【讨论】:

以上是关于什么是 MSVCP100D.dll? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

找不到msvcp120dll啥意思

vc++ 中未处理的异常 (msvcp100d.dll)

MSVCP100D.dll 丢失

未找到 msvcp100d.dll -错误 [重复]

代码执行无法继续,因为找不到 MSVCP100D.dll [重复]

应用程序无法启动,因为未找到 MSVCP100D.dll,重新安装应用程序可能有效