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?

link|improve this question

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
feedback

2 Answers

up vote 2 down vote accepted

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.

link|improve this answer
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
feedback

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

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

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