Ha alguns dias tive um problema que me deu um pouco de dor de cabeça. Precisava registrar uma dll 32 bits no Windows Server 2008 R2 que é somente 64 bits. Após alguns dias de pesquisa achei o seguinte KB282747.

Nele é informado que o regsvr32.exe que existe na pasta C:\Windows\System32 é somente para dlls 64 bits. Caso queria registrar uma dll 32 bits, deve-se utilizar o executável que está na pasta C:\Windows\SysWOW64. O que não é informa é que a dll 32 bits não pode ser colocada na pasta C:\Windows\System32 e sim na C:\Windows\SysWOW64.

Em resumo, para registrar a dll 32 bits no Windows x64, coloque a dll na pasta C:\Windows\SysWOW64, abra o prompt de comandos, entre na pasta acima, e execute o regsvr32 nome_dll.dll. Pronto funciona perfeitamente. Faltou um pouco de clareza na documentação só.

Posts Similares

27 Comentários

  1. Executei os passos acima e não funcionou… Apesar do arquivo estar na pasta, diz que “Não foi possível encontrar o módulo especificado”

    1. Alexandre, além do arquivo ter de estar na pasta C:\Windows\SysWOW64, você deve entrar na pasta C:\Windows\SysWOW64 no prompt antes de executar o regsvr32. Se você estiver em outra pasta, irá chamar a versão 64 bits do regsvr32, e dará a mensagem de erro que você citou.

    2. Tem uma forma que funcionou comigo. Executar o prompt comom administrador. Você vai e iniciar e digita CMD quando aparecer o prompt clica com o botão direito e vai em “Executar como administrador” e é só rodar o comando, que no meu caso foi “regsvr32 capicom.dll”

  2. olá amigos, executei como administrador, a dll está na pasta c:\windows\syswow64, mas quando executo dá o erro falha ao carregar o módulo…

    alguém tem uma luz?

    obrigado
    Felipe

    1. Felipe, você copiou a dll para a pasta c:\windows\syswow64 executou o comando a partir dela também? Se você executar de outra pasta o windows irá chamar o executável 64 bits.

  3. Rodei o comando como vc disse, coloquei minha DLL na SysWOW64… Mas a mensagem que aparece eh a seguinte: “O modulo “DllInscE32.dll” foi carregado, mas o ponto de entrada DllRegisterServer nao foi localizado. Certifique-se de que “DllInscE32.dll” eh um arquivo DLL ou OCX valido e tente novamente.”

    Alguma sugestao?

    Muito obrigado

  4. Estou com o mesma mensagem de erro do Felipe, funcionou perfeitamente no win seven, mais no win server 2008 R2 mostrou a mensagem de erro, alguém conseguiu?

  5. Perfeito. Para quem não está conseguindo, tem que abrir o prompt de comando como administrador, clicando com o botão direito, senão vai dar o erro que o Felipe relatou ali.

  6. Fiz TODOS os processos, mas nao resolveu em nada, tirei da system32, coloquei na 64… O modulo “ISDone.dll” foi carregado, mas o ponto de entrada DllRegisterServer nao foi localizado. Certifique-se de que “ISDone.dll” eh um arquivo DLL ou OCX valido e tente novamente.

  7. Coloquei isdone.dll 32 bits ( meu PC é 64 bits) na pastas SysWOW64, entrei no cmd, diretorio certinho da pasta SysWOW64, usei o regsvr32 e mesmo assim apareceu que o ponto de entrada dllregisterserver nao foi localizado.
    Algm me ajuda pf

  8. Também não consegui registrar no server 2008. mesmo sintoma de DllRegisterServer não localizado. Executei como ADM o prompt e nada mudou. alguma mudança pra quem teve sucesso?

  9. Deu certinho. Estava com um problema relacionado gerador de relatórios Delphi RM.
    Fiz o procedimento registrando a dll a partir da pasta SysWOW64 sendo meu Windows 7. Executou e acessou normalmente. Obrigada!

  10. não funcionou aqui no meu Windows 7 64 bits coloquei minha DLL na Pasta SysWOW64 Mas continua aparecendo a mesma mensagem de sempre
    “O modulo “Op14Codec.dll” foi carregado, mas o ponto de entrada DllRegisterServer nao foi localizado. Certifique-se de que “Op14Codec.dll” é um arquivo DLL ou OCX valido e tente novamente

    alguem sabe como resolver isto?

    obrigado

  11. 0
    votar contra
    favorita
    Não estou conseguindo registrar nenhuma DLL desenvolvida em Delphi em maquinas com Windows 64 bits.

    1 – Eu ja testei algumas com algumas DLLs diferentes, inclusive com uma nova, de testes, com uma unica procedure, simples.

    Ja tentei registrar utilizando REGSVR32 da pasta C:\windows\system32
    Ja tentei registrar utilizando REGSVR32 da pasta C:\windows\syswow64
    Ja tentei compilar a DLL em 32bit e em 64bits
    Ja utilizei o Dependency Walker: Baixei todas as DLLs (32 no total) que o aplicativo apontou como dependentes e no final obtive a seguinte log:
    Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

    e o Windows 64 não registra. Continua exibindo a mesma mensagem:

    O módulo “c:\Windows\syswow64\project1.dll” foi carregado as o ponto de entrada DLLRegisterServer nao foi localizado. Certifique-se de que “c:\windows\syswow64\project1.dll” é um arquivo DLL ou OCX válido e tente novamente.

  12. Essa parte que vocês dizem para colocar:

    e execute o regsvr32 nome_dll.dll

    essa parte : (nome_dll.dll) , coloca assim mesmo? ou tenho que o nome que esta no arquivo dll?

    Ainda não fiz com medo de colocar errado… não sei se essa parte “nome_dll.dll” é só um exemplo ou se é para colocar assim mesmo…

    Você me entendeu rs?

  13. Pessoal além de copiar o arquivo .dll dentro das pastas system32 e SysWOW64 também é preciso copiar dentro da pasta system. Aí resolver o problema.

Os Comentários estão Encerrados.