“Variável Object ou com variável bloco não definida” ao tentar criar o objeto COM

StackOverflow https://stackoverflow.com/questions/202662

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu tenho um dll VB6 que está tentando criar um objeto COM usando a seguinte linha de código:

Set CreateObj = CreateObject("OPSValuer.OPSValue")

No entanto, esta falha com a "variável Object ou com variável bloco não definida" de erro.

Eu posso ver OPSValuer.OPSValue em dcomcnfg e parece estar bem registrado. Alguém tem alguma idéia sobre o que pode estar causando o problema?

Foi útil?

Solução

DMKing está certo sobre OleView. Também tente olhar para o controle em Dependency Walker , quaisquer dependências ausentes deve vir rapidamente à superfície.

Uma vez que este é um componente DCOM também pode haver algo falhar no construtor componentes, se alguma coisa falhar no construtor você receberá esse erro. É este um objeto ou algo local DCom executado em outro nível?

Em vez de CreateObject tentar instanciar-lo com um novo padrão e ver se ele lhe dá um erro diferente. Adicionando a referência em si pode ajudar a determinar esse erro. Existe uma razão que você está usando a ligação tardia, em vez de ligação antecipada?

Outras dicas

É possível que a classe que você está tentando instanciar não está instalado corretamente ou está faltando algumas dependências. Se você tem acesso a OLE View, você pode tentar instanciar que fora classe de VB. Se ele não vai instanciar então você tem uma má instalação ou dependência ausente. OLE Vista vem com o Visual Studio, procurar Oleview.exe em seu sistema.

Ele foi localizado aqui no meu sistema: D: \ Program Files \ Microsoft Visual Studio 8 \ Common7 \ Tools \ Bin

O erro pode ser jogado dentro da rotina inicializar objeto. Que eu não encontrar "OPSValuer.OPSValue" no Google me faz pensar que é código personalizado que encontra um bug.

Assumindo OPSValuer.OPSValue é um componente escrito em VB, esta é provavelmente um erro levantadas no evento Class_Initialize desse componente. Se você tiver a fonte do componente deve ser fácil de depurar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top