2010-11-18 24 views
11

La mia azienda ha un'applicazione VB6 che utilizza Crystal Reports 7 che un client ha chiesto di installare su Windows 7 a 32 bit. Attualmente è installato su macchine Windows XP a 32 bit SP2 sul client. La connessione al DB avviene tramite ODBC sull'istanza di SQL Server 2000 su un altro server.Come si risolve "Errore run-time '429': il componente ActiveX non può creare oggetti"?

Su Windows 7, l'installazione funziona correttamente, tuttavia quando si tenta di aprire l'applicazione, viene visualizzato l'errore.

ho guardato il seguente:

  • Registrazione tutti i file OCX utilizzando regsvr32 di DLL e. Alcuni non verranno registrati in quanto sono già registrati o viene visualizzato il seguente messaggio "Assicurarsi che" [nome] .dll "sia valido DLL o file OCX e quindi riprovare." Ho letto questo thread sul forum a questo proposito: http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
  • Monitorato l'apertura dell'applicazione utilizzando un Applicazione ProcessMonitor per cercare di individuare se c'è un file dll o ocx mancante - questo non sembra essere il caso.
  • Recensito l'applicazione in base alle this list e nulla sembra essere contro queste linee guida

ho notato due voci nella base di conoscenza che si riferiscono a questo

  • http://support.microsoft .com/kb/281848 - il file comdlg32.ocx fornito con l'applicazione è la versione 6.0.81.69 e quello nella cartella system32 sulla macchina di sviluppo (WinXP a 32 bit) è 6.1.97.82. Tuttavia se questo fosse il problema allora sicuramente non funzionerebbe al momento?
  • http://support.microsoft.com/kb/184898 - Non sono sicuro di come confermare che questo è il problema

Infine, a causa di complessità, non mi è permesso di fare modifiche al codice a questa applicazione. Anche se lo fossi, non sono un programmatore VB6, solo il ragazzo che ha ottenuto il terribile progetto di supporto! Se sono richieste modifiche al codice, allora dovrò investigare usando la modalità WinXP.

Aggiornamento: Ottengo lo stesso errore in modalità XP. Questo è un Win XP con SP3 VM. Funziona su una macchina virtuale Win XP SP2, c'è qualcosa di potenzialmente in SP3 che avrebbe causato ciò? O è solo un fatto che sia la modalità XP?

+0

Hai installato il Microsoft Scripting Engine? – kyndigs

+0

Non è per VBScript? Scusa la mia ignoranza, se non lo è. – RLT

+0

Controllare i riferimenti del progetto nel proprio IDE VB6 e assicurarsi di avere tutti quei DLL/OCX controllati lì registrati. – MicSim

risposta

2

Il file Msrdo20.dll non è presente l'installazione.

Secondo the Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7 questo file deve essere distribuito con l'applicazione.

io non sono sicuro perché non lo è, ma la mia soluzione è quella di inserire il file da qualche parte sulla macchina, e registrarlo con regsvr32 nella riga di comando, ad esempio:

regsvr32 c:\windows\system32\msrdo20.dll 

In un ideale mondo si dovrebbe impacchettare questo con il ridistribuibile.

0

Si dice che funziona dopo aver installato l'IDE VB6, quindi è probabile che il problema sia che i componenti che si sta tentando di utilizzare dipendono dal runtime VB6 installato.

Il runtime VB6 non è installato su Windows per impostazione predefinita.

L'installazione dell'IDE è un modo per ottenere il runtime. Per i computer non di sviluppo, dovrebbe invece essere utilizzato un pacchetto di installazione "ridistribuibile" di Microsoft.

Ecco un programma di installazione runtime VB6 di Microsoft. Non sono sicuro se sarà la versione corretta per i componenti:

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

+0

Ho per caso scaricato quel file in precedenza oggi, purtroppo dopo l'installazione su XP SP3 l'applicazione non è ancora stata eseguita e non vedo un altro ridistribuibile più appropriato per XP. – RLT

+0

Da allora ho appena scoperto tre DLL mancanti sulla macchina SP3 che sono presenti sulla macchina SP2 (e aggiungendole alla macchina SP3 e registrandole consente l'esecuzione dell'applicazione!). Sono msrdo20.dll, msbind.dll e msstdfmt.dll. Sto cercando di trovare ora da dove vengono e se sono disponibili in un altro ridistribuibile da qualche parte. – RLT

+1

Ridotto a msrdo20.dll come causa del problema. – RLT

1

Questo download risolto il mio EXE VB6 e l'accesso 2016 (utilizzando ACEDAO.DLL) runtime errore 429. Mi ha portato 2 lunghi giorni per farlo risolto perché ci sono così tante cause di 429.

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

Citazione di link: "Questo download installa un insieme di componenti che possono essere utilizzati per facilitare il trasferimento dei dati tra i 2010 file di Microsoft Office System e le applicazioni non-Microsoft Office"

1

ho ottenuto lo stesso errore, ma ho risolto utilizzando regsvr32.exe in C: \ Windows \ SysWOW64. Perché usiamo il sistema x64. Quindi se il tuo computer è anche x64, ocx/dll deve essere registrato anche con regsvr32 x64 versione