Request REGSVR32. Failed to load module "xxxxx.dll"

I had a problem registering * .dll under Windows 7 x64.

I tried to place * .dll in both C: / Windows / System32 and C: / Windows / SysWOW64 and tried to register using "regsvr32 xxxxx.dll" in the elevated command prompt. I also tried to register it from a separate directory. It responds with the following error:

The module "xxxxx.dll" failed to load. Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files. The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail. 

EventLog Notes:

 Activation context generation failed for "C:\(path-to-dll) Dependent Assembly Microsoft.VC90.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found. Please use sxstrace.exe for detailed diagnosis 

NB I installed both the common redistributable Microsoft x86 and x64 components of Microsoft Visual C ++ 2010.

Interestingly, I tried to register the same * .dll on my x64 laptop for Windows 7, and it registered as expected. I believe this is due to the fact that any C ++ dependency is missing / related to ATL?

If someone could point me in the right direction or shed extra light on this matter; I would be more than grateful.

Sincerely.

+7
c ++ windows dll dependency-walker regsvr32
source share
5 answers

This is almost certainly due to a lack of addiction. Use a tool such as Dependency Walker to find the necessary DLL dependencies. Or, if the DLL is supplied by a third party, read their documentation, which should indicate the required dependencies.

Please note that Microsoft.VC90.ATL indicates version 9 of the MSVC, which is VS2008. Therefore, you will need to install the MSVC 2008 runtime to satisfy this dependency. It looks like you mistakenly installed the MSVC 2010 runtime.

Finally, do not put files in the system directory. It belongs to the system and should not be changed by you.

+11
source share

Dependent Assembly Microsoft.VC90.ATL, processorArchitecture = "x86"

This indicates a missing Visual C ++ runtime module (see Visual C ++ Libraries as shared assembly builds ). It is available as a redistributable installer ( this , apparently, the one you need; x86 variant), which must be installed before registering your DLL (which in turn depends on the missing component).

+3
source share

There is another reason why this fails. I just stumbled upon this myself. I used API methods that did not support Windows 7 , for example PathCchRemoveFileSpec , which I had to upgrade to an older, outdated PathRemoveFileSpec . I used Dependency Walker to make sure this is the reason. Walker addiction is a bit. If you look at my screenshot (see below), the red section shows the actual problem - the methods that he could not resolve in the DLL that he has, etc. - but blue ones display DLLs that are not really a problem at all (these DLLs exist). Since the Dependency Walker is so old, it is not numerous (it is outdated, it thinks that something is not available from time to time), but usually it also tells the truth ... you just need to scroll a bit on top of the left pane, like me. Note to yourself: scroll down the next time. In any case, as soon as I dropped pathcch.h , everything worked on 7. Happy coding.

enter image description here

+1
source share

I got an exemption from this error message. In my binary path, I had SPACE . Just replaced SPACE with UNDERSCORE(_) . It worked for me.

0
source share

since I also encountered the same problem when registering x.dll through Regsvr32, there is one possible reason that x.dll may be unmaged dll. To use the export function of a dll variable in text network code, you must use Dllimport .

0
source share

All Articles