USAR DLL FEITA EM VBNET NO VB6

ARNALDOCRUZ 20/01/2011 11:00:55
#362824
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
PLUS 20/01/2011 11:03:03
#362826
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.
ARNALDOCRUZ 20/01/2011 11:24:45
#362831
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
PLUS 20/01/2011 11:36:18
#362835
Assim que eu faço:

Citação:

regasm arquivo.dll /tlb:arquivo.tlb /codebase

PLUS 20/01/2011 11:38:18
#362836
O arquivo.tlb gerado deve ser referenciado no seu projeto VB 6.
ARNALDOCRUZ 24/01/2011 12:52:14
#363249
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 ?????
PLUS 24/01/2011 13:57:52
#363267
Não,
Deixa a dll no system32
ARNALDOCRUZ 10/03/2011 21:48:13
#367720
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

KERPLUNK 14/03/2011 09:10:37
#367919
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