Com DLL torna-se não registrado aleatoriamente

2

Temos um aplicativo VB6 que usa um objeto COM para se comunicar com um pacote de email. O aplicativo é executado de forma autônoma e, de vez em quando, em uma lua azul, a DLL COM parece se tornar não registrada. Uma chamada rápida para o RegSvr32 e o sistema está de volta feliz. Tentamos implementar uma correção rápida que registra a DLL toda vez que o aplicativo precisar dela, mas isso não parece ter funcionado. Isso se tornou um grande aborrecimento.

Caso você esteja se perguntando, o aplicativo só chama um comando shell.

Shell "regsvr32 /s " & """" & pathName & """"

Alguém tem uma idéia do que pode fazer com que uma DLL COM seja cancelada?

    
por Dan Blair 08.05.2009 / 23:43

4 respostas

3

Eu vi coisas estranhas acontecerem com DLLs COM devido a antivírus e software anti-spyware. Se puder, tente desativar esses aplicativos se você os tiver.

    
por 09.05.2009 / 03:30
1

Apenas um palpite, mas é a DLL, ou mais provavelmente outra versão da mesma DLL, sendo registrada em local de arquivo diferente? Para uma DLL COM, se fosse a mesma versão e estivesse sendo chamada normalmente (por GUID ou nome), isso não deveria importar, eu não acho, mas vale a pena verificar.

    
por 11.05.2009 / 04:50
1

Eu tenho uma solução para esse problema agora. O pacote de e-mail é o Outlook e isso é fundamental para o problema. O objeto COM não estava realmente se registrando no sistema que estava falhando ao carregar no Outlook, o que parece ser uma ocorrência mais comum, embora ainda rara. Aparentemente, há algumas situações estranhas em que o Outlook simplesmente parará de carregar COM add ins juntos.

Para obter um link para um artigo da base de dados de conhecimento, KB945743

A solução é descarregar o objeto COM do Outlook e recarregá-lo.

    
por 18.05.2009 / 17:22
1

OU algo está cancelando seu registro ou outra versão mais nova ou mais antiga do mesmo objeto com está rodando e autoregistrando o com no mesmo caminho do executável, isso é estranho, mas isso pode ocorrer

E um deles não será executado se ambos os aplicativos forem executados, um falhará

Os arquivos VB6 com são auto-registrados se o arquivo com estiver no mesmo caminho do executável

    
por 22.10.2009 / 01:58