8

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?

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

2 Answers 2

6

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.

1
  • 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. Dec 5, 2011 at 23:34
7

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

1
  • Updated method is to use dumpbin.exe from Visual Studio bin directory: dumpbin /dependents <file.exe/dll> Jun 6, 2019 at 3:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .