Descarregar um controle COM quando se trabalha em VB6 IDE

votos
31

Parte do meu trabalho diário é manter e ampliar as aplicações legado VB6. Um mecanismo comum é escrito em C / C ++ e VB6 usa estas funções, a fim de melhorar o desempenho.

Quando se trata de programação assíncrona, uma interface C não é suficiente e contamos com COM controla a disparar eventos para VB6.

Meu problema é que quando eu registrar o controle em VB6, VB carrega esse controle na memória e não descarregá-lo até que eu sair do IDE VB6. Como o controle é carregado o tempo todo, eu sou incapaz de recompilar-lo em VC6, porque o arquivo DLL está bloqueado.

A solução que encontrei é não permitir o controle em VB, mas usar o CreateObject()com o nome completo do meu controle. O problema, então, é que eu devo declarar meu controle como um objeto porque VB6 não sabe nada sobre a interface que estou usando e eu não tenho acesso a IntelliSense, que é uma dor.

Alguma idéia de como eu posso dizer VB6 para descarregar controles depois de sair do aplicativo ou diretamente no IDE?

Publicado 02/08/2008 em 12:52
fonte usuário
Em outras línguas...                            


1 respostas

votos
27

Tenho certeza de que não há nenhuma boa maneira de forçar VB6 para descarregar o controle.

Aqui está o que eu faço ... em vez de correr Visual C e VB6 side-by-side, executar o Visual Basic sob VC:

  1. Coloque-se VC
  2. Abra o projeto que contém os objetos COM
  3. Editar, mudança, etc.
  4. No VC, defina a saída executável a ser VB6.EXE com argumentos de linha de comando apropriadas para carregar o espaço de trabalho VB6
  5. Agora é só apertar F5 para iniciar o IDE VB6 e carregar seu projeto VB6
  6. Quando você quiser alterar o código COM novamente, saída VB6.EXE, faça as alterações e clique F5 novamente. Enquanto você salvar o seu VB6 espaço de trabalho vai se lembrar do que janelas que você tinha aberto e todas as suas configurações do projeto.

As vantagens deste método:

  • Você pode definir pontos de interrupção no objeto COM e depurá-lo usando um depurador fonte completo
  • Você pode feliz depurar em C e VB, ao mesmo tempo
  • Sempre que VB6 está em execução tem sempre a versão mais recente do COM DLLs
Respondeu 20/08/2008 em 04:58
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more