Galera, estou começando a desenvolver na plataforma VB.NET e quero gerar uma Dll para utilizá-la em um aplicativo Java.
A Dll que quero gerar é referente a uma biblioteca de classes modelo, que descrevem objetos.
Segue o código das classes dessa biblioteca:
Classe Produto
Public Class Produto
Private nome As String
Private descricao As String
Private cod_produto As Integer
Private preco As Double
Public Sub New()
Me.nome = ""
Me.descricao = ""
Me.cod_produto = 0
Me.preco = 0.0
End Sub
Public Sub New(ByVal nome As String, ByVal descricao As String, ByVal cod_produto As Integer, ByVal preco As Double)
Me.nome = nome
Me.descricao = descricao
Me.cod_produto = cod_produto
Me.preco = preco
End Sub
Property Name() As String
Get
Return Me.nome
End Get
Set(ByVal name As String)
Me.nome = name
End Set
End Property
Property Description() As String
Get
Return Me.descricao
End Get
Set(ByVal description As String)
Me.descricao = description
End Set
End Property
Property Code() As Integer
Get
Return Me.cod_produto
End Get
Set(ByVal code As Integer)
Me.cod_produto = code
End Set
End Property
Property Price() As Double
Get
Return Me.preco
End Get
Set(ByVal preco As Double)
Me.preco = preco
End Set
End Property
Public Overrides Function Equals(ByVal obj As Object) As Boolean
Try
If obj Is Nothing Or Not Me.GetType() Is obj.GetType() Then
Return False
End If
Dim p As Produto = CType(obj, Produto)
If p.Code.Equals(Me.cod_produto) And p.Name.Equals(Me.nome) And p.Price.Equals(Me.preco) And p.Description.Equals(Me.descricao) Then
Return True
End If
Catch ex As InvalidCastException
Return False
End Try
Return False
End Function
End Class
Classe Usuario
Public Class Usuario
Private login As String
Private senha As String
Private cod_usuario As Integer
Private qtde_acessos As Integer
Public Sub New()
Me.login = ""
Me.senha = ""
Me.cod_usuario = 0
Me.qtde_acessos = 0
End Sub
Public Sub New(ByVal login As String, ByVal senha As String, ByVal cod_usuario As Integer, ByVal qtde_acessos As Integer)
Me.login = login
Me.senha = senha
Me.cod_usuario = cod_usuario
Me.qtde_acessos = qtde_acessos
End Sub
Property Log() As String
Get
Return Me.login
End Get
Set(ByVal login As String)
Me.login = login
End Set
End Property
Property Password() As String
Get
Return Me.senha
End Get
Set(ByVal senha As String)
Me.senha = senha
End Set
End Property
Property Code() As Integer
Get
Return Me.cod_usuario
End Get
Set(ByVal cod_usuario As Integer)
Me.cod_usuario = cod_usuario
End Set
End Property
Property Acessos() As Double
Get
Return Me.qtde_acessos
End Get
Set(ByVal acessos As Double)
Me.qtde_acessos = acessos
End Set
End Property
Public Overrides Function Equals(ByVal obj As Object) As Boolean
Try
If obj Is Nothing Or Not Me.GetType() Is obj.GetType() Then
Return False
End If
Dim user As Usuario = CType(obj, Usuario)
If user.Code.Equals(Me.cod_usuario) And user.Log.Equals(Me.login) And user.Password.Equals(Me.qtde_acessos) Then
Return True
End If
Catch ex As InvalidCastException
Return False
End Try
Return False
End Function
End Class
Pesquisei exaustivamente no Google e achei muita coisa, mas não entendi a maioria. Muitos dizem a respeito de registrar a Dll, mas eu não faço idéia do que seja isso. Segui um passo a passo que encontrei e até consegui registrar a dll, mas no final das contas, ainda assim não deu certo. :(
Por isso, vim aqui no GUJ procurar alguém com experiência e boa vontade de ajudar, o q sei q não falta por aqui =)
Tentei usar o Jawin, mas esse não oferece suporte a sistemas 64 bit, q é o meu caso, então tentei substituí-lo pelo JACOB, mas não estou obtendo sucesso.
Copiei a dll jacob-1.17-M2-x64 para o System32 e tudo o q aconteceu foi uma mudança no erro do Java, q passou a ser:
Exception in thread "main" com.jacob.com.ComFailException: Can't get object clsid from progid
Será q alguém pode me ensinar passo a passo como utilizar uma Dll feita em VB no java?
Vlws galera! Aguardo ansiosamente por uma resposta