Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
COM+ remove ou reduz várias limitações de depuração com o Microsoft Visual Basic 6.0 e MTS. A lista a seguir resume as alterações que você pode esperar com COM+:
Depurando vários componentes—No COM+, você pode depurar cenários nos quais um cliente em execução em uma instância do IDE faz chamadas para qualquer número de DLLs em execução em outra como um grupo de projetos. Os objetos nos projetos de DLL agrupados podem chamar uns aos outros arbitrariamente, contextualizando conforme necessário. É claro que isso também funciona quando as DLLs e o cliente estão no mesmo grupo de projeto na mesma instância do IDE.
Limitações de depuração em eventos Class_Initialize e Class_Terminate—Com COM+, você pode colocar código nos eventos Class_Initialize e Class_Terminate de um componente de aplicativo COM+, mesmo que esse código tente acessar o objeto ou seu objeto de contexto correspondente. Você pode definir pontos de interrupção lá e usar relógios. Você também pode definir pontos de interrupção no evento Class_Terminate.
Embora não seja mais necessário como uma solução alternativa, você ainda pode implementar o IObjectControl interface e usar seus Ativar e Deactivate métodos se precisar executar código durante a inicialização e o desligamento do componente. Agora você também pode colocar pontos de interrupção no código para os métodos Desativar ou CanBePooled.
Observando objetos MTS—Com o COM+, pode adicionar acompanhamentos para variáveis de objeto retornadas pelo COM+, incluindo valores de retorno dos métodos SafeRef, GetObjectContexte IObjectContext::CreateInstance.
Maior estabilidade quando os componentes falham—No COM+, a falha de um componente não irá mais interromper o Visual Basic (que é executado no mesmo processo que o componente que está a ser depurado). Por exemplo, o suporte para falhas de reativação just-in-time (JIT) agora permite que o utilizador examine o contexto do objeto durante a depuração.
Depurador pode reativar objetos liberados pelo COM+—Assim como o MTS, o Visual Basic 6.0 pode reativar objetos COM+ enquanto você estiver depurando uma única etapa através de um cliente. Devido à maneira como o Visual Basic 6.0 descobre informações sobre objetos, esse comportamento é esperado. Por exemplo, considere o seguinte código:
Dim obj As Object Set obj = CreateObject("MyApp.MyClass") obj.Test 'Call the user-defined subroutine named Test. Set obj = NothingSe o método obj.Test chama IObjectContext::SetComplete, o COM+ liberta imediatamente o obj da memória, mas o obj ainda não foi definido como Nothing. Quando obj.Teste retorna, o depurador do Visual Basic chama QueryInterface no obj, para a interface IProvideClassInfo. O wrapper de contexto associado ao obj cria uma nova instância de MyApp.MyClass para atender a chamada QueryInterface. Como resultado, verá esse objeto não inicializado no depurador após obj.Test ter retornado. Este objeto aparece apenas no depurador e é removido pela instrução subsequente para definir obj como Nothing.
Tópicos relacionados