使用VS2013编译的应用程序需要VS2005运行时

时间:2015-11-21 14:49:53

标签: c++ visual-studio

我的环境中安装了VisualStudio 2005和VisualStudio 2013。我对一些项目感到奇怪。我使用VS2013编译这样的项目,当我尝试通过资源管理器或命令行启动它时,我收到错误 - "程序无法启动,因为MSVCR80.dll丢失了......"。为什么用msvcr120编译msvcr80?

我尝试了什么:

  1. 将msvc * 80.dll放入带可执行文件的目录中。我得到了运行时错误" R6034。应用程序尝试错误地加载C运行时库..."

  2. 使用Dependency Walker检查二进制依赖项。我看到二进制文件依赖于VS2013运行时,并且没有提及msvcr80.dll

  3. 使用空PATH启动二进制文件。我没有给出任何积极的影响。
  4. 在另一个' clean'上发布二进制文件PC。它与vs2013运行时一起工作正常。
  5. 这怎么可能?

1 个答案:

答案 0 :(得分:0)

谢谢大家,你是对的。我忘记了,我已经安装了旧版本的产品。它是在后台启动并使用旧版本的库。因此,当我运行我的新应用程序时,它尝试使用已加载的库。另一方面,Dependecy walker没有检查已加载的库,只查看PATH。

关于DLL加载的MSDN链接 - https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682586(v=vs.85).aspx