How to Fix RegSvr32 ‘The module may not compatible with the version of Windows’?
Every Windows user at least once in his life came across some DLL file error. And very often, wandering the net in search of at least some information, we come across advice about registering the troublesome file manually through RegSvr32. The latter can be activated either through the “Run” dialog box or through the Command line.
The user tries to start the registration utility, and… The following error message pops up in front of him:
The module “*****.dll” may not compatible with the version of Windows that you’re running. Check if the module is compatible with an x x86 (32-bit)orx64 (64-bit) version of regsvr32.exe.
It goes without saying that after seeing such an unclear message the user gets really confused. Well, in today’s article we will try to clear things up a bit and fix the issue with the RegSvr32 component.
Why the module may not compatible with the version of Windows?
The thing is the user, i.e. you, dear reader, is trying to register a dynamic library (DLL) in his Windows, but he does it incorrectly. These are the mistakes novice users make when registering a DLL in the OS:
- Many DLLs are supplied by developers in two versions: 32-bit and 64-bit. In some cases you need to register one version of a library, but sometimes you need to register both the 32-bit and 64-bit versions of DLLs. There is one more thing you should remember: a 64-bit OS can work with 32-bit and 64-bit DLLs, and a 32-bit OS can work only with 32-bit DLLs.
- In 64-bit Windows there are not one but two versions of RegSvr32: 32x and 64-bit. As you can easily guess, one of them is used to register 32-bit DLLs and the other one is used for 64-bit libraries. Moreover, if you don’t specify the exact location of the 32-bit version of the utility in the command you are running, the 64-bit version will be used by default.
- It is important to remember that on 64-bit Windows the System32 folder is intended for 64-bit (!) DLLs and SysWOW64 is for 32-bit ones. Counter-intuitively, Microsoft decided to do it that way, which causes headaches for newcomers to the windows OS.
- ARM processors have their own libraries labeled arm-64. These versions of the DLL cannot be run on systems with Intel and AMD CPUs. Make sure you downloaded correct version of DLL for your PC.
RegSvr32 ‘The module may not compatible with the version of Windows’ FIX
The easiest thing to do is to take a couple of examples with DLL file registrations on both versions of Windows. Please make sure that you have the right version of the DLL for the application and, more importantly, for your OS. So, let’s start with 32-bit Windows:
- copy the 32-bit version of the desired DLL file into your System32 folder;
- press WIN+R to call the “Run” dialog box;
- type the command regsvr32.exe *****.dll in the empty line and press ENTER.
The process looks a bit different on a 64-bit OS, and that’s because it can work with both 32x and 64-bit DLLs:
- copy the 64-bit DLL file to your System32 folder;
- press WIN+R to open the “Run” window;
- type regsvr32.exe *****.dll and press ENTER;
- if you need to register 32-bit DLL, put the corresponding file in SysWOW64 and run C:\Windows\SysWOW64\regsvr32.exe *****.dll.
If you find the right library and register it correctly, RegSvr32 will not give you the error ‘The module may not compatible with the version of Windows’.