2015-11-21 58 views
0

我有安装了VisualStudio 2005和VisualStudio 2013的环境。我对一些项目有些奇怪的情况。我用VS2013编译这些项目,当我尝试通过资源管理器或命令行启动它们时,出现错误 - “程序无法启动,因为MSVCR80.dll丢失...”。为什么使用msvcr120编译msvcr80?使用VS2013编译的应用程序需要VS2005运行时

我试了一下:

  1. 认沽MSVC * 80.dll到目录中的可执行文件。我得到了运行时错误“R6034。一个应用程序试图加载C运行时库不正确......”

  2. 使用Dependency Walker检查二进制相关性。我看到该二进制文件对VS2013运行时存在依赖关系,并且没有提及msvcr80.dll

  3. 启动了带有空PATH的二进制文件。我没有产生积极的影响。
  4. 在另一个“干净”电脑上启动二进制文件。它和vs2013运行时一起工作。

这怎么可能?

+0

有没有通过一些其他DLL的间接依赖? –

+0

我没有看到它通过Dependcy Walker – Yury

+0

使用谷歌,它似乎说DLL也是由Office 2010使用。所以根据你的应用程序做什么可能会有一个间接的依赖。 –

回答

0

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

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

相关问题