how to debug: regsvr32 dll registration error 0x3

Dr.YSG picture Dr.YSG · Dec 11, 2012 · Viewed 9k times · Source

I have an application that I am creating a innosetup install (setup.exe) for. 20 COM dlls register fine. I have one that does not.

regsvr32 (running as an admin) reports an 0x3 error. But How do I find out which DLL is missing? I have another computer where regsvr does work! (both are win7 64 bit computers, pretty much identical).

I have run DEPENDENCY-WALKER.exe on the DLL (vpfmap.dll) and I looked at all the dependencies.

As far as I can tell they should be all on that computer (c:\windows (many dlls) and then 8 others that I have copied to the target folder on the target computer.

I see no errors in the Event log.

What I want is how to figure out what is missing?

enter image description here

enter image description here

Answer

Superbob picture Superbob · Mar 12, 2013

With dependency walker, if you are scanning a 64-bit file, make sure you are using the 64-bit version of dependency walker. Otherwise, the results are not what you expect.

Another tip: Try to register the DLL, and then check the Application event log. Often, the event log will have more detail, including filenames of missing files.

If this is a side-by-side dependency issue, the tool sxstrace.exe may tell you what is missing. This file is installed with Windows 7. http://technet.microsoft.com/en-us/library/hh875651%28v=ws.10%29.aspx

run

sxstrace TRACE -logfile:tracelog.etl

then try to register your file.

After stopping tracing, you need to PARSE the log to get a human readable version of it.

sxstrace PARSE -logfile:tracelog.etl -outfile:tracelog.txt