regsvr32 è uno strumento del command prompt diWindows che sta per Microsoft Register Server. Viene utilizzato per registrare e annullare la registrazione di controlli OLE (Object Linking and Embedding) come file .DLL e file .OCX di controlli ActiveX.
Quando regsvr32 registra un file DLL, le informazioni sui file di programma associati vengono aggiunte al registro di Windows. Sono quei riferimenti di registro a cui altri programmi possono accedere per capire dove si trovano i dati del programma e come interagire con essi.
Potrebbe essere necessario registrare un file DLL se viene visualizzato un errore DLL sul computer. Spieghiamo come farlo di seguito.
Questi passaggi si applicano su Windows 10 tramite Windows XP.
Come registrare e annullare la registrazione di un file DLL
Se i riferimenti nel registro di Windows che fanno riferimento al file DLL vengono in qualche modo rimossi o danneggiati, i programmi che devono utilizzare quel file DLL potrebbero smettere di funzionare. È quando questa associazione con il registro viene interrotta che deve essere registrato un file DLL.
La registrazione di un file DLL viene in genere eseguita reinstallando il programma originale di appartenenza. Tuttavia potrebbe essere necessario registrare manualmente il file DLL tramite il prompt dei comandi.
Guarda il nostro tutorial su come aprire il prompt dei comandi se non sei sicuro di come trovarlo.
Questo è il modo corretto per strutturare un comando regsvr32:
regsvr32 [/ u] [/ n] [/ i [: cmdline]]
Ad esempio, immetti questo primo comando per registrare un file DLL denominato myfile.dll o il secondo per annullarne la registrazione:
regsvr32 myfile.dll
regsvr32 / u myfile.dll
Non tutte le DLL possono essere registrate semplicemente inserendo il comando sopra nel prompt dei comandi. Potrebbe essere necessario chiudere prima il servizio o il programma che utilizza il file.
Come correggere gli errori comuni di Regsvr32
Ecco un errore che potrebbe comparire nel tentativo di registrare un file DLL:
Il modulo è stato caricato ma la chiamata a DllRegisterServer non è riuscita con codice di errore 0x80070005.
Questo è in genere un problema di autorizzazione. Se l'esecuzione del prompt dei comandi con privilegi elevati non consente ancora di registrare il file DLL, il file stesso potrebbe essere bloccato. Controllare quindi la sezione Sicurezza della scheda Generale nella finestra Proprietà del file.
Un altro possibile problema potrebbe essere che non disponi delle autorizzazioni corrette per utilizzare il file.
Un messaggio di errore simile a quello di seguito potrebbe essere visualizzato. Questo errore in genere significa che la DLL non viene utilizzata come DLL COM per nessuna applicazione sul computer, quindi non è necessario registrarla.
Il modulo è stato caricato ma il punto di ingresso DllRegisterServer non è stato trovato.
Ecco un altro messaggio di errore di regsvr32:
Il modulo non è stato caricato. Assicurati che il file binario sia archiviato nel percorso specificato o esegui il debug per verificare la presenza di problemi con i file binari o dipendenti .DLL. Il modulo richiesto non può essere trovato.
L'errore nel caso specifico potrebbe essere dovuto a una dipendenza mancante, si consiglia pertanto di utilizzare lo strumento Dependency Walker per visualizzare l'elenco di tutte le dipendenze richieste dal file DLL poiché potrebbe mancarne una necessaria per la corretta registrazione del file DLL in questione.
Inoltre, assicurati che il percorso del file DLL sia scritto correttamente. La sintassi del comando è molto importante e potrebbe verificarsi un errore se il command non viene inserito correttamente.
Alcuni file DLL potrebbero dover avere la loro posizione racchiusa tra virgolette:
"C: Users Admin Utente Programmi myfile.dll"
Dove viene memorizzato Regsvr32.exe?
Le versioni a 32 bit di Windows (XP e successive) aggiungono lo strumento Microsoft Register Server a questa cartella alla prima installazione di Windows:
% systemroot% System32
Le versioni a 64 bit di Windows memorizzano il file regsvr32.exe non solo lì ma anche in questa cartella:
% systemroot% SysWoW64