2009-07-29 11 views
6

Quando uso "regsvr32 foo.dll" ottengo un errore "il modulo specificato non può essere trovato".Regsvr32 non riesce a trovare la dll nella cartella corrente

L'errore è stato causato perché regsvr32 non è stato in grado di trovare il file anche se è la cartella corrente.

Ho specificato il percorso completo, e ancora doen't lavoro. Qualche idea????

risposta

11

Questo può accadere se foo.dll ha una depenenza su bar.dll e in realtà non è possibile trovare bar.dll.

Provare a utilizzare depends.exe da MSVC per verificare le dipendenze di foo.dll e vedere se sono mancanti.

Un'altra opzione è scaricare ed eseguire FileMon. Quindi eseguire regsvr32 ancora e vedere quali file/modulo non riesce a trovare. Questo dovrebbe sicuramente rintracciarlo.

0

Sui sistemi operativi a 64 bit, Dependency Walker è stato uninformative per me; e FileMon è stato sostituito da Process Monitor (vedi https://docs.microsoft.com/en-us/sysinternals/downloads/procmon per scaricare l'utility). Ecco come sono stato in grado di trovare i riferimenti mancanti utilizzando Process Monitor:

ProcMon Toolbar for the Filter Dialog

Aprire la finestra dei filtri o dalla barra degli strumenti o il menu.

ProcMon Filter Dialog

Aggiungere la Process Name del regsvr32.exe alla lista dei filtri e rimuovere eventuali PID filtri.

ProcMon Clear Toolbar Button

cancellare l'elenco, ...

ProcMon Capture Toolbar Button

... accendere Acquisizione, se non è già acceso.

Eseguire il comando regsvr32.exe da una finestra della console. Una volta completato, potresti voler disattivare l'acquisizione.

missing reference lines

Cercare il riferimento mancante dopo regsvr32 ha caricato la DLL.