2010-11-18 51 views
11

Mi empresa tiene una aplicación VB6 utilizando Crystal Reports 7 que un cliente solicitó instalar en Windows 7 de 32 bits. Actualmente está instalado en máquinas con Windows XP 32bit SP2 en el cliente. La conexión a la base de datos se realiza a través de la instancia de ODBC a SQL Server 2000 en otro servidor.¿Cómo resuelvo "Error en tiempo de ejecución '429': el componente ActiveX no puede crear objetos"?

En Windows 7, la instalación funciona bien, sin embargo, cuando intenta abrir la aplicación, se produce el error.

He mirado en lo siguiente:

  • El registro de todos los archivos OCX utilizando regsvr32 de DLL y. Algunos no se registrarán porque ya están registrados o se mostrará el siguiente mensaje: "Asegúrese de que" [nombre] .dll "sea un archivo DLL o OCX válido y vuelva a intentarlo". Leí este hilo del foro con respecto a esto: http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
  • Monitoreé la apertura de la aplicación usando un Aplicación ProcessMonitor para tratar de detectar si falta un archivo dll o ocx; este no parece ser el caso.
  • revisado la solicitud de acuerdo con this list y nada parece estar en contra de estas directrices

que he notado dos elementos de la base de conocimientos que se relacionan con este

  • http://support.microsoft .com/kb/281848 - el comdlg32.ocx incluido con la aplicación es la versión 6.0.81.69 y el que está en la carpeta system32 de la máquina dev (WinXP 32 bit) es 6.1.97.82. Sin embargo, si este era el problema, entonces seguramente no funcionaría actualmente?
  • http://support.microsoft.com/kb/184898 - No estoy seguro de cómo confirmar que este es el tema

Por último, debido a la complejidad, no se me permite hacer cambios en el código a esta aplicación. Incluso si lo fuera, no soy un programador de VB6, ¡solo el tipo que recibió el terrible proyecto de soporte! Si se requieren cambios de código, entonces tendré que investigar usando el modo WinXP.

Actualización: aparece el mismo error en el modo XP. Es un Win XP con SP3 VM. Esto se ejecuta en una máquina virtual Win XP SP2, ¿hay algo potencialmente en SP3 que haya causado que esto ocurra? ¿O es simplemente un hecho de que sea el modo XP?

+0

¿Ha instalado Microsoft Scripting Engine? – kyndigs

+0

¿No es eso para VBScript? Disculpe mi ignorancia si no es así. – RLT

+0

Verifique las referencias del proyecto en su IDE de VB6 y asegúrese de que haya registrado todas las DLL/OCX allí registradas. – MicSim

Respuesta

2

El archivo MSRDO20.dll no se encuentra en la instalación.

De acuerdo con the Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7, este archivo se debe distribuir con la aplicación.

no estoy seguro de por qué no lo es, pero mi solución es colocar el archivo en algún lugar de la máquina, y registrarlo utilizando regsvr32 en la línea de comandos, por ejemplo:

regsvr32 c:\windows\system32\msrdo20.dll 

En un ideal mundo que empacaría esto con la redistribuible.

0

Dice que funciona una vez que instala el VB6 IDE, por lo que es probable que el problema sea que los componentes que está tratando de usar dependen del tiempo de ejecución de VB6 que se está instalando.

El tiempo de ejecución de VB6 no está instalado en Windows de forma predeterminada.

La instalación de IDE es una forma de obtener el tiempo de ejecución. Para las máquinas que no son desarrolladores, se debe usar un paquete instalador "redistribuible" de Microsoft.

Aquí hay un instalador de tiempo de ejecución VB6 de Microsoft. No estoy seguro de si va a ser la versión correcta para sus componentes:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7b9ba261-7a9c-43e7-9117-f673077ffb3c

+0

Por casualidad descargué ese archivo el día de hoy, desafortunadamente después de instalar en XP SP3 la aplicación aún no se ejecutó y no veo otra redistribuible que sea más apropiada para XP. – RLT

+0

Desde entonces acabo de descubrir tres archivos DLL que faltan en la máquina SP3 que están presentes en la máquina SP2 (¡y agregarlos a la máquina SP3 y registrarlos permite que la aplicación se ejecute!). Son msrdo20.dll, msbind.dll y msstdfmt.dll. Estoy tratando de encontrar ahora de dónde vienen y si están disponibles en otro redistribuible en alguna parte. – RLT

+1

Estrellécelo a msrdo20.dll como causante del problema. – RLT

1

Esta descarga fijado mi EXE VB6 y Acceso 2016 (usando ACEDAO.DLL) en tiempo de ejecución de error 429. Me llevó 2 días largos para que lo resuelva, porque hay tantas causas de 429.

http://www.microsoft.com/en-ca/download/details.aspx?id=13255

cita de enlace: "Esta descarga se instalará un conjunto de componentes que se pueden utilizar para facilitar la transferencia de datos entre 2010 archivos de Microsoft Office System y aplicaciones que no son de Microsoft Office"

1

tengo el mismo error, pero lo solucioné mediante el uso de regsvr32.exe en C: \ Windows \ SysWOW64. Porque usamos el sistema x64. Entonces, si su máquina también es x64, la ocx/dll debe registrarse también con regsvr32 x64 versión

Cuestiones relacionadas