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.
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?
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.
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.
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.
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
Tags windows-xp dll com vb6