I'm installing a custom application on a brand new Windows 2003 Server. A couple of DLLs need to be added and registered, and I have copied them to the server in the C:\WINDOWS\System32 folder -- which is where they have always been when we've had the application running on Windows NT and 2000.

However, when I try to register them using:

regsvr32 c:\windows\system32\nameoflibrary.dll

It gives back:

LoadLibrary("c:\windows\system32\nameoflibrary.dll") failed - 
The specified module could not be found.

The DLL is however right there. I can see it. If I copy the path to Windows Explorer and attempt to run it, it tells me that I can't run a DLL, so I know it's there. One minor complication is that the DLLs were built in VB5 -- but the VB5 runtime is installed on the server, so this shouldn't be a problem.

Any ideas?

  • Is this a 64-bit Windows 2003 server? – jscott Dec 5 '11 at 19:15
  • No, it's 32-bit. – Cyberherbalist Dec 5 '11 at 19:17

It could be that a dependant module is missing. You need to look at the getlasterror code to determine why the module was not found.

  • Yep. A module that was supposed to be installed by the main application didn't get installed. Once this was corrected, the two DLLs registered correctly. – Cyberherbalist Dec 5 '11 at 23:34

Jim B. is probably correct. Get DependencyWalker and load {nameoflibrary.dll} -- it will show you which dependent DLL is missing.

  • Updated method is to use dumpbin.exe from Visual Studio bin directory: dumpbin /dependents <file.exe/dll> – Asad-ullah Khan Jun 6 '19 at 3:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.