2013-04-15 83 views
30

Si tenta di aggiungere il controllo Microsoft Rich Textbox Control 6.0 (SP6) tramite Progetto -> Componenti ... in IDE VB6. Il controllo è presente nell'elenco dei controlli. Quando ho spuntare e fare clic su OK/apply, ottengo Object library not registered errore:"Libreria oggetti non registrata" quando si aggiunge Microsoft Rich Textbox Control 6.0 (SP6)

VB6 IDE Object library not registered error

ambiente è Windows 7 SP1 x64 con gli ultimi aggiornamenti, VB6 SP6 + KB957924. richtx32.Ocx è presente in C:\Windows\SysWOW64\.

ho cercato di ri-registrazione OCX eseguendo questo nel prompt dei comandi con privilegi elevati:

cd c:\windows\SysWOW64 
regsvr32 /u richtx32.Ocx 
regsvr32 richtx32.Ocx 

Registrazione completata correttamente, ma non risolve il problema.

Quando guardo cosa sta succedendo sotto il cofano con API Monitor, la chiamata sospetta più recente è LoadRegTypeLib ({7c0ffab0-cd84-11d0-949a-00a0c91110ed}, 0x0001, 0x0000, LOCALE_NEUTRAL, 0x0018e82c) che restituisce TYPE_E_LIBNOTREGISTERED.

+1

C'è una questione connessa da dove vengo e che si adatta meglio al mio problema. Sembra avere la stessa soluzione. http://stackoverflow.com/q/15614730/828499 – Semmel

+0

Questa soluzione vale anche per [libreria di oggetti Non utilizzato quando l'aggiunta di controlli Windows Common 6.0] [1] [1]: http://stackoverflow.com/questions/15614730/object-library-not-registered-when-adding-windows-common-controls-6-0 –

risposta

53

Il problema è stato risolto eseguendo il seguente nel prompt dei comandi con privilegi elevati:

cd C:\Windows\SysWOW64\ 
regtlib msdatsrc.tlb 

questo anche aiutato con altri file ocx più anziani, come Graph32.ocx e Threed32.ocx

+0

Grazie! Questo ha effettivamente risolto il mio problema con MSCOMCTL.OCX. Qualche idea più profonda su cosa fa o come funziona? – Semmel

+3

@Semmel Si riduce alla conoscenza di base della COM. La causa principale del problema era che quella particolare interfaccia non era registrata in un sistema. La risoluzione così ovvia era quella di registrare la libreria dei tipi con la descrizione dell'interfaccia mancante. Questo è ciò che fa "regtlib". Prova questo link se sei ancora confuso: http://msdn.microsoft.com/en-us/library/windows/desktop/aa366757.aspx –

+1

Ho riscontrato questo stesso problema su un computer Windows 7 a 32 bit. La correzione è la stessa, è solo che 'regtlib' risiede in **' C: \ Winodws \ System32' **. – raven