USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (ActiveX/Controles/DLL)

Título da Dica:  Como registrar um componente via código
Postada em 1/9/2003 por Ð@®l@n            
Cedo ou tarde surge essa necessidade em uma aplicação profissional : Seja para evitar falhas do usuário, garantindo que seus componentes estão corretamente registrados, seja para fazer automaticamente a instalação de novos componentes, enfim, a aplicação acaba tendo que registrar por si só seus componentes.

Quando utilizamos RegSvr32 para registrar um componente o que ocorre é que é disparada um função existente dentro da própria dll do componente. Assim sendo, quem faz o seu registro é a própria dll.

Desta forma, para registrarmos uma dll via código a única coisa que precisamos fazer é disparar essa função que já existe na dll.

Assim sendo, precisamos fazer a declaração da função. Veja :

Private Declare Function RegisterTestDLL Lib "Test.Dll" _
Alias "DllRegisterServer" () As Long
Const ERROR_SUCCESS = 0&

Essa constante que foi definida é o valor de retorno em caso de sucesso.

A partir dai poderemos chamar a função dentro da DLL chamada test.dll Para que o registro funcione, porém, é necessário que estejamos no diretório onde esta dll se encontra. Veja :

Dim retCode As Long
On Error Resume Next

ChDrive "C:"
ChDir "C:\MyApp"

Foi definida uma variável para guardar o código de retorno e foi habilitado o tratamento de erro in-line, além, claro, de ter sido trocado o disco e diretório corrente para a localização da dll.

O próximo passo é chamar a funcão de registro e testar o resultado :

retCode = RegisterTestDLL()

If Err <> 0 Then
' Provavelmente a dll não existe
MsgBox "Unable to find the Test.Dll file"
ElseIf retCode <> ERROR_SUCCESS Then
' O registro executou, mas falhou
MsgBox "O Registro falhou"
End If
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página