问题
I put MSVCR100D.DLL into the c:\windows\system32 folder but dependency walker is still complaining about it being missing. Any ideas?
回答1:
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.
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:\windows\syswow64, 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.
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.
来源:https://stackoverflow.com/questions/20068059/msvcr100d-dll-and-dependency-walker