Cada usuario de Windows, al menos una vez en su vida, enfrenta algún error de archivo DLL. Y muy a menudo, deambulando por la red en busca de información, nos encontramos con el consejo para registrar el archivo de problemas manualmente a través de REGSVR32. Este último se puede usar tanto a través del cuadro de diálogo Ejecutar como a través de la línea de comando.
El usuario intenta iniciar el módulo de registro y … el siguiente error aparece frente a él:
El módulo «*****. Dll» puede no ser compatible con la versión de Windows que se ejecuta en esta computadora. Compruebe si este módulo es compatible con la versión de 32 bits (x86) o de 64 bits (x64) de REGSVR32. exe.
Obviamente, después de que aparezca un mensaje tan inarticulado, el usuario está completamente confundido. Parece que tratamos de deshacernos de un error y, en cambio, obtuvimos otro, aún más confuso. Bueno, en el artículo de hoy intentaremos aclarar un poco las cosas y resolver el problema con el componente REGSVR32.
¿Por qué el módulo no es compatible con la versión de Windows?
El punto es que el usuario, es decir, usted, querido lector, está tratando de registrar una biblioteca dinámica (DLL) en sus ventanas, pero lo está haciendo incorrectamente. Aquí están los errores que cometen los usuarios novatos al registrar una DLL con el sistema operativo:
- Los desarrolladores suministran muchas DLL en dos versiones: 32 bits y 64 bits. En algunos casos, debe registrar una versión de una biblioteca, pero a veces debe registrar versiones de 32 bits y 64 bits de una DLL. También debe recordar algo: un sistema operativo de 64 bits puede funcionar con DLLS de 32 bits y 64 bits, un sistema operativo de 32 bits, solo con DLL de 32 bits.
- En la versión de 64 bits de Windows no hay una sino dos versiones de REGSVR32 a la vez: 32x y 64 bits. Como puede adivinar fácilmente, uno se usa para registrar DLL de 32 bits y la otra se usa para bibliotecas de 64 bits. Además, si no especifica la ubicación exacta de la versión de 32 bits de la utilidad en el comando que está ejecutando, la versión de 64 bits se usará de forma predeterminada.
- Es importante recordar que en Windows de 64 bits, la carpeta System32 está destinada a DLLS y SYSWOW64 de 64 bits son para 32 bits. Contraintuitivamente, Microsoft decidió hacerlo de esta manera, lo que causa dolores de cabeza para los recién llegados del sistema operativo Windows.
- Los procesadores ARM tienen sus propias bibliotecas etiquetadas con ARM-64. Estas versiones de DLL no se pueden usar en sistemas con CPU Intel y AMD. Asegúrese de haber descargado la versión correcta de la biblioteca para su PC.
¿Cómo arreglar Regsvr32 «El módulo no es compatible con la versión de Windows»?
Lo más fácil de hacer es encontrar un par de ejemplos con registros de archivos DLL en ambas versiones de Windows. Asegúrese de tener la versión DLL adecuada para su aplicación y, lo que es más importante, para su sistema operativo. Entonces, comencemos con ventanas de 32 bits:
- Copie la versión de 32 bits del archivo DLL deseado a la carpeta System32;
- Presione Win+R para mencionar el cuadro de diálogo «Ejecutar»;
- Escriba el comando regsvr32. exe *****. dll en la línea vacía y presione Entrar.
En un sistema operativo de 64 bits, el proceso se ve un poco diferente, y todo porque puede funcionar con DLLS de 32 y 64 bits:
- Copie el archivo DLL de 64 bits a la carpeta System32;
- Presione Win+R para llamar a la ventana «Ejecutar»;
- Escriba el comando regsvr32. exe *****. dll y presione Entrar;
- Si necesita registrar una DLL de 32 bits, coloque el archivo correspondiente en SYSWOW64 y ejecute c:/\ windows \ syswow64 \ regsvr32. exe *****. dll.
Si elige la biblioteca correcta y la registra correctamente, RegSvr32 no le dará el error «El módulo no es compatible con la versión de Windows».