Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Defende

Instanciar DLL

Recommended Posts

Pessoal tenho a seguinte chama a dll em VB:Declare Function XPnetmRemote Lib "XPCOM32.DLL" (ByVal Hwnd As Long, ByVal nChannel As Long, ByVal nTerm As Long, ByVal nActive As Long) As LongGostria de saber como eu posso fazer esta chama ou usar esta DLL em ASP visto que a dll esta no mesmo servidor que as paginas?Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara...Isso não é uma DLL comum, isso é uma API do Windows e você não vai conseguir chama-la diretamente do ASP.Para utilizar os métodos desta API você terá que criar uma DLL própria encapsulando esta DLL e criando métodos que fazem chamada à API.Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai Marcelo.Cara eh uma dll sim. Eh de um equipamento de uma empresa que eu trabalho. elea controla dispositivos de controle de acesso (catraca, relogio de ponto, etc) e agora tem um cliente nosso que quer fazer o seguinte:Ele quer que via rede interna, pelo browser, ele posso enviar determinados comandos para estes dispositivos e quem faz isso eh essa chamada ai. Olha um trecho em VB desse comando feito em VB: RespCmd = "CLD:RELAY 1,1:DISP 1,4,""TERMINAL"":DISP 2,4,""LIBERADO""" sRemoto = XPnetmRemote(Me.Hwnd, ComUso, nmTerminal, True) Retorno = XPnetmTxCmd(Me.Hwnd, ComUso, nmTerminal, RespCmd) MsgBox "O terminal " & nomeTerminal & " foi liberado com sucesso.", vbOKOnly, "Aviso de liberação de terminal."Entendeu agora.que ideia você me dah pra tentar resolver isso ai???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu te falei...Isso é uma API (DLL)....quando digo do Windows, quero dizer que ela tem acesso direto a memória do Windows...Com utilização de linguagem em plataforma baixa.

 

Para usa-la...Você precisará do VB para criar um componente seu....

 

Neste componente você faz essa chamanda à API.

 

Declare Function XPnetmRemote Lib "XPCOM32.DLL" (ByVal Hwnd As Long, ByVal nChannel As Long, ByVal nTerm As Long, ByVal nActive As Long) As Long

Então você cria seus métodos

Sub AbrirCatraca(Byref var1)'=== E dentro de seus método voce chama os métodos da API.XPnetmRemote(Me.Hwnd, ComUso, nmTerminal, True)End Sub

Então no ASP voce instancia a sua DLL

 

Set MyDLL = Server.CreateObject("MinhaDLL.NomedaClasse")Call MyDll.AbrirCatraca(bla)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo, nas propriedades do projeto no VB eu coloco o que na propriedade Startup Object?Outra coisa, a propriedade da minha dll, ali onde tem "Me.Hwnd" eh um manipulador de janela. Dentro do VB eu me referencio ao form mesmo, mas e agora dentro de uma dll? o que eu posso fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara...Nas DLLs nós não temos FORM, e em consequencia não temos HWND...que se referencia ao código da memória que está utilizando determinado FORM.Você tera que ver a documentação da DLL do seu cliente para verificar se é possível fazer a chamada não passando este parâmetro.No Startup voce coloca (none)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa propriedade seria pra que? Nao entendi sua explicacao. Seria relativo ao Hwnd??Onde eu encontro material sobre como criar e instanciar DLL? Eu vi aquele post seu mas eu queria mais....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.