Como invocar no Delphi uma DLL feita em Visual Basic?

16/03/2017

0

Olá,
não sou desenvolvedor Delphi e na empresa que trabalho temos componente em Visual Basic para realizar autenticação do usuário.
Temos um sistema em Delphi feito por um cliente que precisa consumir nossa dll e o analista está com dificuldades e não consegue invocar nossa dll.
Alguém poderia me ajudar a converter esse código para Delphi?
Desde já agradeço.

Dim obj as Object
Dim codigoRetornoLogin As Integer
Dim mensagemLogin As String
'Instanciar objeto COM
Set obj = CreateObject("DB_Seguranca.GER_SEG")

'Preencher Módulo, login e senha
obj.modulo = "CONTRAT"
obj.usuario.User_ID = txtLogin.Text
obj.usuario.Senha = txtSenha.Text
'Validar login
codigoRetornoLogin = obj.Valida_acesso()
'Se retorno for <> 0, significa login é inválido
If (codigoRetornoLogin <> 0) Then
'Obtém a mensagem de erro para exibição ao usuário
mensagemLogin = obj.ObterMensagemLogin(codigoRetornoLogin)
'Mata objeto COM da memória
Set obj = Nothing
'Exibe mensagem de negócio ao usuário
MsgBox mensagemLogin
Exit Sub
End If
Set obj = Nothing

'Usuario autenticado com sucesso
'Segue a vida...
Carlos Araujo

Carlos Araujo

Responder

Posts

16/03/2017

Raylan Zibel

DB_Seguranca.GER_SEG

Essa é a dll?

Talvez tera que mudar algo nela. Transformar "obj.Valida_acesso()" em um metodo unico onde os parametros sejam os valores das propriedades do objeto.

Valida_acesso(modulo, id_user, senha)


No delphi chamamos um metodo que foi publicado na dll. Trabalhar com objetos nem sempre da certo.
Responder

16/03/2017

Carlos Araujo

Olá,
DB_Seguranca é a dll
GER_SEG é a classe
Seja em Visual Basic 6, Visual Basic.Net ou C# o modo de criar o objeto é usando DB_Seguranca.GER_SEG

A classe GER_SEG possui uma propriedade Modulo que é string.
Possui uma propriedade Usuario que é uma classe do tipo Usuario. (Ok, isso é errado usar propriedade com o mesmo nome da classe, mas essa é uma dll legada muito antiga).
A classe Usuario possui propriedades: User_ID e Senha do tipo string.
O que fazemos em VB ou .Net é instanciar a classe, popular as propriedades e invocar o método que desejamos assim como qualquer exercício básico de orientação a objetos.
Porém, não tenho Delphi na empresa, o analista da consultoria responsável pelo produto não consegue instanciar a dll e estamos com o prazo apertado.
Por isso corri para os foruns de discussão.
Responder

17/03/2017

Raylan Zibel

Rapaz... eu não sei afirmar se é possível passar um objeto assim. E ainda chamar um método dele.. só testando.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar