Visual Basic 6 - Registrando uma DLL
Veremos neste artigo como registrar e remover uma DLL do registro e como o VB usa as informações do registro para criar objetos.
Registrando uma DLL
Podemos registrar uma DLL assim :
Regsvr32.exe nome_da_dll.dll
Cancelando o registro de uma DLL
Podemos cancelar o registro de um componente DLL quando ele não se tornar mais necessário. Se a DLL foi registrada usando um programa de instalação ( Setup ) o cancelamento do registro pode ser feito via Painel de Controle em Adicionar/Remover programas.
Se o registro foi feito manualmente via utilitário Regsvr32.exe para cancelar o registro utilizamos a opçao /u e o nome da DLL que desejamos remover do sistema:
Regsvr32.exe /u nome_da_dll.dll
Dando uma espiada nos bastidores
Quando registramos uma DLL o registro do windows é utilizado para guardar as informações sobre a DLL e permitir assim que os clientes e as bibliotecas COM possam localizar , criar e utilizar as classes na DLL.
As informações estão localizadas em HKEY_CLASSES_ROOT no registro do Windows. Além disto o Visual Basic gera três chaves de registro :
Assim para uma classe identificada como Classe_Teste a chave ProgID é encontra assim :
\HKEY_CLASSES_ROOT\Classe_Teste
A chave ProgId possui uma subchave chamada CLSID que contém um número que identifica a classe.
Vamos abrir o registro do Windows usando o RegEdit e escolher uma classe qualquer - DataNames.Classe_Teste. Clique sobre o ProgID e a seguir em Clsid e no lado direito do painel você verá um número de identificação da classe.
Sabendo o valor do CLSID da classe podemos localizar a DLL que contém a classe procurando pela chave InprocServer32 que contém a localização completa do arquivo DLL. Para fazer isto basta clicar com o botão direito do mouse sobre o nome Padrão e a seguir em modificar. Na janela que se abre com o numero da CLSID de um CTRL+C para copiar para clipboard.
Agora , ainda na chave HKEY_CLASSES_ROOT procure a chave CLSID expandindo-a. Clique com o botão direito do mouse sobre CLSID e na janela localizar cole o valor da chave CLSID e lique em localizar.
A classe será localizada e exibida:
Clicando na subchave InprocServer32 teremos o indicativo da localização da classe e o modelo de encadeamento usado - Apartament.
Perceba que a chave CLSID possui as seguintes subchaves além de InprocServer32 :
- ProgID - contém o identificador programático para esta classe.
- Programmable - Define se esta classe suporta automação.
- TypeLib - define o tipo de identificador de tipos para o componente.
Para localizar a biblioteca de tipos para um componente clique em Padrão e a seguir em Modificar . Na janela Editar sequência de um CRL+C e clique em cancelar.
Agora localize a chave TypeLib e expandindo-a clique com o botão direito do mouse sobre TypeLib e cole o valor na janela . Clique em localizar e expandindo o valor achado clique na subchave win32 para ver o nome do arquivo dll da classe.
- VERSION - defina a versão da classe.
Usando a DLL - ativando o objeto COM
Quando você vai usar a sua DLL criando um objeto COM através da função CreateObject ou da palavra-chave New o VB realiza uma série de operações para criar o objeto no seu projeto.
Obs: Podemos usar um dos três códigos abaixo para criar uma instância de uma classe :
1 | Dim objTeste As Teste Set objTeste = CreateObject("Classe.Teste") |
Evite usar
a sintaxe 3 , pois nesta sintaxe o VB somente irá criar o objeto quando ele for usado. Para saber quando deve criar o objeto o VB irá ter controlar o processo e isto torna o código menos eficaz. |
2 | Dim objTeste As Teste Set objTeste = New Teste |
|
3 | Dim objTeste As New Teste |
Quando você usa CreateObject faz com que o ProgID da classe seja criado e a seguir convertido para o CLSID correspondente segundo as seguintes etapas:
Feito isto esta tudo pronto , e , você já pode chamar as propriedades e métodos do objeto.
Até o próximo artigo...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: