USAR DLL FEITA EM VBNET NO VB6
Bom dia
Colegas fiz uma dll no vbnet
como posso usar esta dll no vb6, sendo que onde será usado não terá o vb2008 instalado ?
Obrigado
Colegas fiz uma dll no vbnet
como posso usar esta dll no vb6, sendo que onde será usado não terá o vb2008 instalado ?
Obrigado
Penso que deve referenciar essa .dll no projeto VB 6, e na hora que for instalar o programa em outra máquina, levar junto essa dll também, se for o caso a pessoa tem que instalar o framework na versao correta.
quando registro como abaixo
C:\Windows\Microsoft.NET\Framework\v2.0.50727egasm.exe /u [Ô]C:\Windows\System32\SNGPCDLL.dll[Ô] /codebase
recebo a mensagem abaixo
Registering an unsigned assembly with/codebase can use your assembly to interface with other application that may be intalled on the same computer. The /codebase switch is intended to be used only with signed assemblies. Please give your assembly a strong name and re-register it.
quando vou no vb6 tentar adicionar a referencia diz que o arquivo não pode ser adicionado a referencia
Can[ô]t add a reference to the especified file
C:\Windows\Microsoft.NET\Framework\v2.0.50727egasm.exe /u [Ô]C:\Windows\System32\SNGPCDLL.dll[Ô] /codebase
recebo a mensagem abaixo
Registering an unsigned assembly with/codebase can use your assembly to interface with other application that may be intalled on the same computer. The /codebase switch is intended to be used only with signed assemblies. Please give your assembly a strong name and re-register it.
quando vou no vb6 tentar adicionar a referencia diz que o arquivo não pode ser adicionado a referencia
Can[ô]t add a reference to the especified file
Assim que eu faço:
Citação:regasm arquivo.dll /tlb:arquivo.tlb /codebase
O arquivo.tlb gerado deve ser referenciado no seu projeto VB 6.
na minha maquina funfou legal agoraSurgiu um outra duvida.
Na referencia no vb6 ficou D\ProjetoX\Projetox\bin\Debug\MinhaDLL
só que lá no cliente não será esta pasta, será que vai funfar ?????
Na referencia no vb6 ficou D\ProjetoX\Projetox\bin\Debug\MinhaDLL
só que lá no cliente não será esta pasta, será que vai funfar ?????
Não,
Deixa a dll no system32
Deixa a dll no system32
Só funciona na minha maquina no cliente nem com reza da braba.
colegas já instalei o framework 3.5 o SP1
segui as dicas postadas no tópico e nada
registrei como abaixo
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727egtlibv12.exe “C:\Windows\System32\SGNGPCDLL.tlbâ€
dá a mensagem que foi registrado com sucesso
fiz a referencia no projeto ao arquivo tlb
A classe em vbnet segue abaixo
Imports SNGPCDLL
Imports System.Security.Cryptography
Imports System.Xml
Imports System.Text
Imports System.IO
Imports System.Runtime.InteropServices
Public Interface IClasseNet
Function Envia(ByVal login As String, ByVal senha As String, ByVal Arquivo As String) As String
Function Consulta(ByVal login As String, ByVal senha As String, ByVal cnpj As String, ByVal hash As String) As String
End Interface
Public Class Clssngpc
Implements IClasseNet
Public Function Envia(ByVal login As String, ByVal senha As String, ByVal Arquivo As String) As String Implements IClasseNet.Envia
Dim Wservico As New WSanvisaservico.sngpc
Dim LEITOR As New System.IO.StreamReader(Arquivo)
Dim DADOS As String
Dim Retorno As String = [Ô][Ô]
DADOS = LEITOR.ReadToEnd()
LEITOR.Close()
LEITOR.Dispose()
DADOS.Replace([Ô][Ô], [Ô][Ô]).Replace([Ô]
[Ô], [Ô][Ô]).Replace([Ô] [Ô], [Ô][Ô])
Dim hash As String = GerarHash(DADOS)
Retorno = Wservico.ValidarUsuario(login, senha)
Envia = Wservico.EnviaArquivoSNGPC(login, senha, DADOS, hash)
End Function
Public Function Consulta(ByVal login As String, ByVal senha As String, ByVal cnpj As String, ByVal hash As String) As String Implements IClasseNet.Consulta
Dim Wservico As New WSanvisaservico.sngpc
Consulta = Wservico.ConsultaDadosArquivoSNGPC(login, senha, cnpj, hash)
End Function
Function HashAnvisa(ByVal Arquivo As String) As String
Dim _s As New StringBuilder
Dim textConverter As New ASCIIEncoding()
Dim Md5Provider As New MD5CryptoServiceProvider()
Dim ArquivoByte As Byte() = Encoding.GetEncoding([Ô]ISO-8859-1[Ô]).GetBytes(Arquivo)
ArquivoByte = textConverter.GetBytes(Arquivo)
ArquivoByte = Md5Provider.ComputeHash(ArquivoByte)
Dim caralho As String = [Ô][Ô]
For i = 1 To Len(ArquivoByte)
_s.Append(ArquivoByte.ToString([Ô]x2[Ô]))
Next
Return _s.ToString()
End Function
Public Function GetHashMD5(ByVal pKeyEncode As String) As String
Dim _s As New StringBuilder
Dim _cs = New MD5CryptoServiceProvider()
Dim _bs As Byte() = Encoding.GetEncoding([Ô]ISO-8859-1[Ô]).GetBytes(pKeyEncode)
_bs = _cs.ComputeHash(_bs)
For Each _b As Byte In _bs
_s.Append(_b.ToString([Ô]x2[Ô]).ToLower())
Next
Return _s.ToString()
End Function
Function GerarHash(ByVal Arquivo As String)
Dim HashGerado As String
Dim textConverter As New ASCIIEncoding()
Dim Md5Provider As New MD5CryptoServiceProvider()
Dim ArquivoByte As Byte()
Arquivo = Arquivo.Replace([Ô][Ô], [Ô][Ô]).Replace([Ô]
[Ô], [Ô][Ô]).Replace([Ô] [Ô], [Ô][Ô])
ArquivoByte = textConverter.GetBytes(Arquivo)
ArquivoByte = Md5Provider.ComputeHash(ArquivoByte)
HashGerado = ByteArrayToHex(ArquivoByte)
Return HashGerado.ToLower
End Function
Private Function ByteArrayToHex(ByRef ByteArray() As Byte) As String
Dim l As Long
Dim s As String = String.Empty
For l = LBound(ByteArray) To UBound(ByteArray)
s = s & Hex$(ByteArray(l))
Next l
ByteArrayToHex = s [ô]Mid(s, 1, Len(s) - 1)
End Function
End Class
colegas já instalei o framework 3.5 o SP1
segui as dicas postadas no tópico e nada
registrei como abaixo
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727egtlibv12.exe “C:\Windows\System32\SGNGPCDLL.tlbâ€
dá a mensagem que foi registrado com sucesso
fiz a referencia no projeto ao arquivo tlb
A classe em vbnet segue abaixo
Imports SNGPCDLL
Imports System.Security.Cryptography
Imports System.Xml
Imports System.Text
Imports System.IO
Imports System.Runtime.InteropServices
Public Interface IClasseNet
Function Envia(ByVal login As String, ByVal senha As String, ByVal Arquivo As String) As String
Function Consulta(ByVal login As String, ByVal senha As String, ByVal cnpj As String, ByVal hash As String) As String
End Interface
Public Class Clssngpc
Implements IClasseNet
Public Function Envia(ByVal login As String, ByVal senha As String, ByVal Arquivo As String) As String Implements IClasseNet.Envia
Dim Wservico As New WSanvisaservico.sngpc
Dim LEITOR As New System.IO.StreamReader(Arquivo)
Dim DADOS As String
Dim Retorno As String = [Ô][Ô]
DADOS = LEITOR.ReadToEnd()
LEITOR.Close()
LEITOR.Dispose()
DADOS.Replace([Ô][Ô], [Ô][Ô]).Replace([Ô]
[Ô], [Ô][Ô]).Replace([Ô] [Ô], [Ô][Ô])
Dim hash As String = GerarHash(DADOS)
Retorno = Wservico.ValidarUsuario(login, senha)
Envia = Wservico.EnviaArquivoSNGPC(login, senha, DADOS, hash)
End Function
Public Function Consulta(ByVal login As String, ByVal senha As String, ByVal cnpj As String, ByVal hash As String) As String Implements IClasseNet.Consulta
Dim Wservico As New WSanvisaservico.sngpc
Consulta = Wservico.ConsultaDadosArquivoSNGPC(login, senha, cnpj, hash)
End Function
Function HashAnvisa(ByVal Arquivo As String) As String
Dim _s As New StringBuilder
Dim textConverter As New ASCIIEncoding()
Dim Md5Provider As New MD5CryptoServiceProvider()
Dim ArquivoByte As Byte() = Encoding.GetEncoding([Ô]ISO-8859-1[Ô]).GetBytes(Arquivo)
ArquivoByte = textConverter.GetBytes(Arquivo)
ArquivoByte = Md5Provider.ComputeHash(ArquivoByte)
Dim caralho As String = [Ô][Ô]
For i = 1 To Len(ArquivoByte)
_s.Append(ArquivoByte.ToString([Ô]x2[Ô]))
Next
Return _s.ToString()
End Function
Public Function GetHashMD5(ByVal pKeyEncode As String) As String
Dim _s As New StringBuilder
Dim _cs = New MD5CryptoServiceProvider()
Dim _bs As Byte() = Encoding.GetEncoding([Ô]ISO-8859-1[Ô]).GetBytes(pKeyEncode)
_bs = _cs.ComputeHash(_bs)
For Each _b As Byte In _bs
_s.Append(_b.ToString([Ô]x2[Ô]).ToLower())
Next
Return _s.ToString()
End Function
Function GerarHash(ByVal Arquivo As String)
Dim HashGerado As String
Dim textConverter As New ASCIIEncoding()
Dim Md5Provider As New MD5CryptoServiceProvider()
Dim ArquivoByte As Byte()
Arquivo = Arquivo.Replace([Ô][Ô], [Ô][Ô]).Replace([Ô]
[Ô], [Ô][Ô]).Replace([Ô] [Ô], [Ô][Ô])
ArquivoByte = textConverter.GetBytes(Arquivo)
ArquivoByte = Md5Provider.ComputeHash(ArquivoByte)
HashGerado = ByteArrayToHex(ArquivoByte)
Return HashGerado.ToLower
End Function
Private Function ByteArrayToHex(ByRef ByteArray() As Byte) As String
Dim l As Long
Dim s As String = String.Empty
For l = LBound(ByteArray) To UBound(ByteArray)
s = s & Hex$(ByteArray(l))
Next l
ByteArrayToHex = s [ô]Mid(s, 1, Len(s) - 1)
End Function
End Class
Amigo, além da DLL, vc precisa do .NET framework instalado na máquina do cliente. Mas se já fez uma parte em .NET, porque não fazer tb o resto???
Tópico encerrado , respostas não são mais permitidas