MSVCR100D.DLL 和依赖项walker [英] MSVCR100D.DLL and dependency walker

查看:20
本文介绍了MSVCR100D.DLL 和依赖项walker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将 MSVCR100D.DLL 放入 c:windowssystem32 文件夹,但 Dependency walker 仍然抱怨它丢失了.有什么想法吗?

I put MSVCR100D.DLL into the c:windowssystem32 folder but dependency walker is still complaining about it being missing. Any ideas?

推荐答案

Dependency walker 已经很长时间没有更新了.我认为作者只是放弃了跟上 Windows 开发的努力.特别是解决并排清单查找规则是一个非常难以解决的问题.SetDllDirectory() 无法静态解析.它对延迟加载的 DLL 不是很聪明,它对作为转发器的 DLL 导出一无所知.您几乎总是会得到大量实际上并未丢失的 DLL 列表.

Dependency walker hasn't been updated in a very long time. I think the author just gave up trying to keep up with Windows development. Particularly resolving side-by-side manifest lookup rules is a very hard problem to solve. SetDllDirectory() is impossible to resolve statically. It isn't very smart about delay-loaded DLLs and it doesn't know anything about DLL exports that are forwarders. You almost always get a big list of missing DLLs that are not actually missing.

在 64 位操作系统上使用 32 位版本也不能很好地工作,可能是 msvcr100d.dll 的错误.对于 32 位可执行文件,必须复制到 c:windowssyswow64,而不是 system32.您真的希望支持 msvcrt 版本 10 及更高版本的本地部署.换句话说,只需将 DLL 复制到与 EXE 相同的目录中即可.将它放在 Windows 系统目录中会让你暴露在过多的 DLL Hell 中,远远超出选择错误的系统目录.

Using the 32-bit version on a 64-bit operating system does not work well either, your probable mistake in the case of msvcr100d.dll. Which must be copied into c:windowssyswow64, not system32 for a 32-bit executable. You really want to favor local deployment for msvcrt versions 10 and up. In other words, simply copying the DLL into the same directory as the EXE. Putting it in the Windows system directory exposes you to too much DLL Hell, well beyond picking the wrong system directory.

如果您仍然遇到问题,那么 SysInternals 的 ProcMon 是更好的工具.它生成的跟踪准确地显示了它在何处查找 DLL.

If you still have trouble then SysInternals' ProcMon is the better tool. The trace it generates shows you exactly where it looked for the DLL.

这篇关于MSVCR100D.DLL 和依赖项walker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆