|
|
|
|
|
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
|
|
|
|
|