2

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

cs0815
  • 16,751
  • 45
  • 136
  • 299

1 Answers1

7

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.

Hans Passant
  • 922,412
  • 146
  • 1,693
  • 2,536
  • 1
    If you are limited to using Dependency Walker, make sure you use the x86 or the x64 version that matches your project build settings. – Jason Harrison May 01 '14 at 20:57
  • 3
    There is now an open source rewrite partially done in C#, meet "**Dependencies.exe**": https://github.com/lucasg/Dependencies. Test impression: **a bit beta-ish**, but it claims to handle API-sets and SxS (missing from Dependency Walker). **I haven't tested it enough to really recommend it** - but it is open source and hence inspectable. It seems you need to build it yourself from the source (for now). And yes, in my opinion the whole side-by-side concept is in many ways a second coming of dll-hell in a brand new incarnation. – Stein Åsmul Dec 16 '17 at 14:51
  • Hans, in [a previous comment](https://stackoverflow.com/q/7378959/129130) you mention using **Visual Studio's debugger modules view** to determine dependencies. A great reminder for when you have source access. Thanks! Now, I have been mucking about trying to find some test code to determine what sort of dependencies this view shows out of the ones described in [**the Dependency Walker help file**](http://www.dependencywalker.com/help/html/dependency_types.htm). But perhaps you would know this off the top of your head? Maybe I should make this a real question instead of just a comment? – Stein Åsmul Dec 16 '17 at 15:00