proporcionar - Registrar DLL COM de 32 bits en Windows 7 de 64 bits
regsvr32 (10)
Creo que las cosas han cambiado ahora. En My Win 2008 R2 Box, pude registrar un dll de 32 bits con un regsvr32 de 64 bits, ya que la versión de 64 bits puede detectar el bitness objetivo y generar un nuevo regsvr32 de 32 bits de la carpeta% SYSWOW%.
Consulte: Registro de una DLL de 32 bits con regsvr32 de 64 bits
Tengo una DLL de componente COM de 32 bits y esta DLL está escrita en Delphi. Es una DLL Win32. Quiero utilizar esta DLL en mi proyecto de Visual C # en la plataforma .NET.
No puedo agregar referencia a esta DLL en el proyecto. Intento registrarlo en el símbolo del sistema como administrador en Windows 7 de 64 bits, pero obtengo este error:
Compruebe si el módulo es compatible con una versión x86 (32 bits) o x64 (64 bits) de regsvr32.exe.
Primero coloco el archivo DLL en la carpeta windows / system32. Luego abro Command Prompt como administrador. Escribo regsvr32 huginalpha.dll
y ejecuto este comando. Pero obtengo el error. ¿que puedo hacer?
Debajo del enlace guardado el día
https://msdn.microsoft.com/en-us/library/ms229076(VS.80).aspx
use los RegSvcs relevantes como se especifica en el enlace anterior
c: / Windows / Microsoft. NET / Framework / v4.0.30319 / RegSvcs.exe .... / Shared / Your.dll /tlb:Your.tlb
Es probable que intente registrar una biblioteca de 32 bits con la versión de 64 bits de regsvr32. Consulte este artículo de KB : debe ejecutar regsvr32 desde Windows / SysWOW64 para las bibliotecas de 32 bits.
Intenta ejecutarlo en Framework64.
Ejemplo:
32 bit
C:/Windows/Microsoft.NET/Framework/v2.0.50727/RegAsm.exe D:/DemoIconOverlaySln/Demo/bin/Debug/HandleOverlayWarning/AsmOverlayIconWarning.dll /codebase
64 bit
C:/Windows/Microsoft.NET/Framework64/v2.0.50727/RegAsm.exe D:/DemoIconOverlaySln/Demo/bin/Debug/HandleOverlayWarning/AsmOverlayIconWarning.dll /codebase
Para DLLS de 32 bits en plataformas de Windows de 64 bits:
- Copie whatever.dll en
c:/windows/sysWOW64/
- Abra un mensaje de CMD COMO ADMINISTRADOR (muy importante)
En la ventana de CMD:
-
CD c:/windows/sysWOW64/
-
regsvr32 whatever.dll
A continuación, ejecutará el regsvr de 32 bits ( c:/windows/sysWOW64/regsvr.exe
) en un dll de 32 bits
Para registrar un comm .dll o .ocx en Windows 7 de 32 bits, haga lo siguiente:
Copie .dll o .ocx a c:/windows/system32
Escriba cmd en el menú Ejecutar, buscará cmd.exe, haga clic con el botón derecho y haga clic en Run as Administrator
Mostrará un mensaje en c:/windows/system32
Tipo
regsvr32 ocxname.ocx
para registrar .ocx
o
escriba regsvr32 dllname.dll
para registrar .dll
Recibí el error "El módulo puede ser compatible con esta versión de Windows" para ambas versiones de RegSvr32 (32 bits y 64 bits). Estaba tratando de registrar una DLL creada para XP (32 bit) en Server 2008 R2 (x64) y ninguna de las resoluciones de Regsr32 funcionó para mí. Sin embargo, registrar el ensamblado en el .Net apropiado funcionó perfecto para mí. C: / Windows / Microsoft.NET / Framework / v2.0.50727 / RegAsm.exe
Si no se resuelve el problema, al usar la versión SysWoW64 de regsvr32, asegúrese de que todas las dependencias de la biblioteca tengan la misma arquitectura. Por ejemplo, cuando
regsvr32 lib_x86.dll
no puede registrar la biblioteca, y %SystemRoot%/SysWow64/regsvr32 lib_x86
también falla, intente cargar lib_x86
a la aplicación Dependency Walker para ver toda la lista de dependencias. Si algún elemento tiene archetecture de 64 bits, esta es la razón por la cual regsvr32
no puede cargar la biblioteca de 32 bits.
pon el dll en el directorio system32 o syswow32, y usa el regsvr32 apropiado para registrarlo. wiered que a pesar de que dio error al registrar el error, reinicié mi WIN 7 64 Y mi aplicación vb cargó el dll muy bien !!
http://onerkaya.blogspot.com/2013/03/register-com-dll-on-windows-64-bit.html
La recuperación de la fábrica de clase COM para el componente con CLSID {...} falló debido al siguiente error: 80040154 Clase no registrada (Excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
si intentas esto;
c: / windows / system32 / regsvr32.exe <nombre de archivo> .dll
aún puedes tomar esta excepción. por lo que IIS- pool Configuración avanzada, Habilitar aplicación de 32 bits: true;)