We have an old classic ASP website that I'm trying to host on a new Server 2012 box. It uses a DLL developed in house on VB6.

I copied the installer file over and it error's out. I try to register the DLL manually using "regsvr32 pathToDll\theDll.dll" and it comes back with error 0x80004005. Google suggests that I should run the command from an elevated command prompt. So I do and I get the same error. I've also tried running the same command from the SYSWOW64 directory and I get the same error.

Through Googling, I also find that it could be from missing dependencies. I used Dependency Walker and sure enough it was missing a few things. So I found out I had to install the VB6 runtime files, and enable a few features and all the dependencies are resolved. So I tried reregistering the DLL and it still gives the same error.

Any ideas? I know it's a 32 bit dll on a 64 bit machine but it should at least register.

  • After you installed the dependencies did you use the SysWow64 version of regsvr? – Scott Chamberlain Aug 16 '13 at 14:32
  • @ScottChamberlain Yes, I did. Still gives the 0x80004005 error. – Clint Davis Aug 16 '13 at 14:37

Ok, after more searching, I found through Dependency Walker that the dll is referencing the API-MS-WIN-CORE-SYNCH-L1-1-0.DLL through the chain of other dlls.

Based on this information from Microsoft, it doesn't look like this is compatible as is. It seems that I would have to recompile the DLL in order to make this work changing the references.

Solution: I'll spin up a VM for this legacy application.

  • Make sure you mark your own answer as accepted or it will keep getting pushed to the font page as a question with no accepted answer. – Scott Chamberlain Aug 26 '13 at 19:07

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.