Por que o REGSVR32 não encontrou uma DLL que está claramente lá?

8

Estou instalando um aplicativo personalizado em um novo Windows 2003 Server. Algumas DLLs precisam ser adicionadas e registradas, e eu as copiei para o servidor na pasta C: \ WINDOWS \ System32 - que é onde elas sempre estiveram quando tivemos o aplicativo em execução no Windows NT e 2000 .

No entanto, quando tento registrá-los usando:

regsvr32 c: \ windows \ system32 \ nameoflibrary.dll

Ele retorna:

LoadLibrary("c:\windows\system32\nameoflibrary.dll") failed - 
The specified module could not be found.

A DLL está no entanto lá. Eu posso ver isso. Se eu copiar o caminho para o Windows Explorer e tentar executá-lo, ele me diz que não posso executar uma DLL, por isso sei que está lá. Uma pequena complicação é que as DLLs foram construídas no VB5 - mas o tempo de execução do VB5 está instalado no servidor, portanto, isso não deve ser um problema.

Alguma idéia?

    
por Cyberherbalist 05.12.2011 / 20:12

2 respostas

6

Pode ser que um módulo dependente esteja ausente. Você precisa olhar para o código getlasterror para determinar porque o módulo não foi encontrado.

    
por 05.12.2011 / 21:12
7

Jim B. provavelmente está correto. Obtenha DependencyWalker e carregue {nameoflibrary.dll} - ele mostrará qual DLL dependente está faltando. / p>     

por 05.12.2011 / 21:23

Tags