View Full Version : errore 'COMCTL32OCXX' su emulatore di windows xp
blue.cat
25-01-2018, 11:25
Salve a tutti, spero di non aver sbagliato sezione, ma il sistema da me utilizzato è Windows 8.1 per questo scrivo qui.
Sto cercando di far girare un vecchissimo programma di fotoraddrizzamento creato parecchio tempo fa da alcuni studenti della mia ex facoltà, ho installato VirtualBox per emulare un sistema Windows Xp a 32 bit, il programma si avvia, riesco ad eseguire le operazioni preliminari al fotoraddrizzamento, ma quando avvio il procedimento il programma si chiude e compare il seguente errore:
Runtime error '339'
Component 'COMCTL32.OCX' not correctly registered: file is missing or invalid
L'errore compare nella finestra dell'emulatore, non in Windows 8.1
Il software è freeware e funzionava alla grande, per questo cercavo di recuperarlo.
Ho provato a cercare in rete ma non ho trovato soluzioni al problema.
Grazie a tutti per la vostra attenzione e grazie in anticipo a chi vorrà aiutarmi!
live_killers
25-01-2018, 13:04
Quì propongono la soluzione allo stesso problema che si verifica però su windows 7 (non 8.1).
https://answers.microsoft.com/en-us/windows/forum/windows_7-files/comctl32ocx-a-file-is-missing-or-invalid-error/6ac1bedd-ddb5-4482-bb30-e404af091def?auth=1
Fossi in te proverei comunque di fare la stessa cosa. Magari il procedimento è esattamente lo stesso.;)
blue.cat
25-01-2018, 13:18
Avevo letto quel post, ho provato ma non funziona, probabilmente perché l'errore è dato nella macchina virtuale, non nel sistema operativo principale.
Comunque grazie per la segnalazione.
blue.cat
25-01-2018, 14:35
@live_killers
La soluzione da te indicata è corretta e di norma funziona su tutte le versioni di Windows. ;)
Visto che la soluzione proposta però nel tuo caso sembra non funzionare procediamo per gradi. Per prima cosa controlla l'esistenza del file “comctl32.ocx” nel sistema emulato. Il percorso esatto è:
c:\WINDOWS\system32\comctl32.ocx
Se il file “comctl32.ocx” esiste prova a farne una copia nella cartella del programma in questione per poi eseguirne un test di funzionamento: a volte in questo modo - con questo piccolo trucchetto - il problema si risolve immediatamente.
Ho provato, ho trovato il file e l'ho copiato nella cartella del programma ma non ha funzionato, l'errore è sempre lo stesso.
Tra l'altro questo software funziona direttamente da cartella, non richiede installazione.
Tempo fa l'avevo provato su un vecchio pc non mio con Win Xp e funzionava correttamente, quindi avevo escluso un errore del programma.
Secondo voi provare con un altro emulatore potrebbe essere una soluzione possibile?
Avevo letto quel post, ho provato ma non funziona, probabilmente perché l'errore è dato nella macchina virtuale, non nel sistema operativo principale.
Comunque grazie per la segnalazione.
Visto che stiamo parlando un un ActiveX dovrebbe essere sufficiente registrarlo con regsvr32 comctl32.ocx sulla vm.
Ovviamente non è così che si scrive il comando ma con regsvr32 <percorso del file da registrare>
blue.cat
26-01-2018, 16:25
Hai provato ad eseguire il programma in questione direttamente sotto W8.1 in modalità “compatibilità” per XP? Spesso (ma non sempre) vecchi programmi - apparentemente incompatibili o problematici - riprendono a funzionare anche sui nuovi Windows dopo aver impostato tale modalità:https://www.ilsoftware.it/articoli.asp?tag=Compatibilita-Windows-10-con-i-vecchi-programmi-Cosa-c-e-da-sapere_12787
Sinceramente non sapevo esistesse un'opzione di compatibilità su Windows 8! :rolleyes: :stordita: :doh:
Sapevo del "Windows Xp Mode" su Win 7, modalità che poi era stata eliminata nell'8 e 8.1.
Comunque: in modalità compatibilità Windows Xp Sp 2, dopo un errore per l'assenza del file MSVBVM50.DLL al quale ho rimediato installando i file di runtime di Visual Basic 5.0 il programma ha funzionato!!
Visto che stiamo parlando un un ActiveX dovrebbe essere sufficiente registrarlo con regsvr32 comctl32.ocx sulla vm.
Ovviamente non è così che si scrive il comando ma con regsvr32 <percorso del file da registrare>
La prima cosa da verificare è quindi che la registrazione del componente venga effettuata tramite utenza amministrativa all'interno dell'ambiente emulato e che subito dopo l'esecuzione del comando di registrazione appaia il messaggio: DllRegisterServer in comctl32.ocx riuscito.
Per registrare/de-registrare l'ocx tramite interfaccia grafica è possibile utilizzare il programma Common Controls Replacement Project Registration Utility 1.20 che trovi qui:
http://ccrp.mvps.org/download/cooltools.htm
Link diretto eseguibile (.zip):
http://ccrp.mvps.org/download/cooltools/ccrpregutil120.zip
Meno male che non ho dovuto fare questa procedura perché è una cosa troppo "pro" per me! :stordita:
Comunque spero non sorgano altri problemi e continui a funzionare!
Grazie mille a tutti per avermi risolto il problema!!
Meno male che posso sempre contare su questo forum per risolvere le magagne! :D
Grazie ancora!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.