【问题标题】:The program can't start because msvcp80.dll is missing程序无法启动,因为缺少 msvcp80.dll
【发布时间】:2012-01-03 03:33:57
【问题描述】:

我在 Visual Studio 2010 上使用 win 7 32bit 的机器工作。

我尝试在发布模式下运行在其他计算机(win7 64bit)上运行良好的代码,并出现以下消息:

The program can't start because msvcp80.dll is missing...

我尝试查看处理此问题的线程。尝试安装不同的 Redistributable 运行时版本。试图将这些文件(msvcp80.dll、msvcm80.dll、msvcr80.dll)复制到项目目录。还有一些我什至没有意识到自己在做什么的不同的事情。

也许还有其他想法?


好的

感谢您的回答。

在我开始项目之前,我确认所有构建 dll 都是 32 位的。

我在一个“opencv”项目上工作,并将问题缩小到这个问题:opencv_imgproc230 lib 函数(如 cvtColor、GaussianBlur)发生的唯一问题是什么导致我检查上面的程序(the_mandrill 的链接)包含在这个dll。它是 msvcp100.dll 的包含(或我猜的点),这似乎是合理的,因为我在 VS10 环境中工作。但即使它是我认为属于 VS80 的 msvcp80.dll 的尖叫。

顺便说一句,当我手动包含 (msvcp80.dll,msvcm80.dll, msvcr80.dll) 时,它会尖叫:

“R6034 应用程序试图错误地加载 c 运行时库...”

似乎需要告诉他使用VS10版本(对于这个dll的/运行库)

【问题讨论】:

    标签: visual-studio dll


    【解决方案1】:

    安装 Dependency Walker 并在“配置文件”模式 (f7) 下运行,这将向您显示它正在寻找和找不到的 dll。

    【讨论】:

      【解决方案2】:

      这只是意味着您动态链接到 MSVC C 运行时。 所以你必须安装所谓的redist包。

      msvcp80.dll -> VC 8 -> VS 2005

      X86 – http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en

      X64 - http://www.microsoft.com/downloads/details.aspx?FamilyId=90548130-4468-4BBC-9673-D6ACABD5D13B&displaylang=en

      由 redisrt 包安装到中心位置的 dll,安装后应该可以解析。

      【讨论】:

      • 不是一个好的答案...redist 安装程序不会为您提供应该仅用于调试的“d”版本。
      【解决方案3】:

      你能检查一下你的 dll 是否是 32 位的吗?也许你有 64 位版本。

      见How can I test a Windows DLL file to determine if it is 32 bit or 64 bit?。

      【讨论】:

        【解决方案4】:

        见this question。

        您提到您已经安装了 VC8 再分发包,但您可能错过了“正确”的包。

        你可能想要:Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC Security Update

        【讨论】:

          猜你喜欢
          • 2011-08-01
          • 2019-03-21
          • 2011-06-09
          • 2017-09-04
          • 2016-01-13
          • 2014-07-10
          • 2019-01-12
          • 2013-01-03
          • 1970-01-01
          相关资源
          最近更新 更多