Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Visual Basic para llamar a un DLL e importarla en ASP

Estas en el tema de Visual Basic para llamar a un DLL e importarla en ASP en el foro de Visual Basic clásico en Foros del Web. Buenas a todos, Me dedico al diseño web y a la programacion en ASP con la base de datos SQLServer. De Visual Basic no se ...
  #1 (permalink)  
Antiguo 08/06/2004, 02:22
 
Fecha de Ingreso: noviembre-2003
Ubicación: Alicante
Mensajes: 111
Antigüedad: 20 años, 5 meses
Puntos: 1
Pregunta Visual Basic para llamar a un DLL e importarla en ASP

Buenas a todos,

Me dedico al diseño web y a la programacion en ASP con la base de datos SQLServer.

De Visual Basic no se practicamente nada, mi problema viene dado con un TPV virtual que necesita registrar unos DLL en el servidor.

En el nuevo servidor donde estoy por filosofias del servidor, para que no influya en su rendimiento etc.. no dejan registrar DLL.

Y me han dado la siguiente propuesta:

"Por tanto la alternativa mejor seria una pequeña aplicación en Visual Basic donde se centralizase el llamamiento a la DLL.
Ahora mismo para su utilización desde ASP facilitamos 2 librerías. TPV.DLL y LIBTPV.DLL
Realmente la primera es la que tiene todo el código de cifrado, sin embargo al no ser una libreria registrable su utilización desde ASP es imposible ya que al menos en el ASP (anterior al Visual NET) no era posible invocar a un objeto si no era del sistema. Por tanto se facilito la TPV.DLL que es registrable y que lo único que hace es llamar internamente a la libtpv.dll. Sobre esta no tenemos acceso ya que es un código registrable, sin embargo sobre la primera sí que podemos retocar parte del código. Si quieres puedes llamarla desde Visual Basic directamente e importarla en ASP."

Alquien me podria decir a que se refiere y como implementarlo? donde se encontraria esta aplicacion? como se llama desde la web? como interactua con la web en ASP? uys..tengo tantas dudas.

En su defecto alguien me podria dar alguna direccion donde explique este tipo de cosas "Visual Basic + Internet" ¿?

Muchas gracias
  #2 (permalink)  
Antiguo 08/06/2004, 15:39
 
Fecha de Ingreso: mayo-2004
Ubicación: Sevilla, Spain
Mensajes: 20
Antigüedad: 20 años
Puntos: 0
Ejemplo de dll llamada desde asp

Hola:

No entiendo muy bien lo de la 1ª y la 2ª. Lo que sí tengo claro es que necesitas una dll que se pueda registrar y que puedas acceder al código fuente, para entender lo que hace, además de saber Visual Basic para interpretarlo.
Si ya tienes una dll que debes usar, una vez declarada en el servidor la puedes invocar desde una página ASP parecida al ejemplo que te pongo a continuación.
Se trata de una página ASP que llama a un componente COM que es una DLL desarrollada en Visual Basic 6. Una vez creada se instala en el servidor y se registra con Regsvr32 "nombredeladll.dll" y Regsvr32 /u "nombredeladll.dll" para desregistrarla.
Si ya está registrada lo único que tienes que hacer es llamarla y usarla. Pero para ello debes saber su funcionamiento interno para poder trabajar con ella.
Concretamente la dll de ejemplo entrega una variable true o false en función de si el usuario se encuentra en la base de datos con la contraseña correcta que previamente lee del formulario html. Como verás también abre una base de datos y lee un formulario html, así que si no te dan el código fuente de la misma lo puedes tener complicado.

“CHEQUEO.ASP” PÁGINA ASP DE LLAMADA A ACCESO.DLL
<%
'Declaracion explicita de variables
Option Explicit
Dim objAcceso
Set objAcceso = Server.CreateObject("Acceso.clsUsuario") 'Llamada a la dll
IF objAcceso.EsUsuario Then
response.Cookies("Clave")="true"
response.redirect "miemb1.asp"
'Response.Write "Saludos usuario " & Request.Form("login") & "<br>"
ELSE
response.redirect "miem_error.htm"
'Response.Write Request.Form("login") & " no es un usuario reconocido<br>"
END IF
Set objAcceso = Nothing
%>




COMPONENTE COM “ACCESO.DLL”:
ABRE BD, COMPRUEBA TEXTBOX CON LA BD, Y CREA RESULTADO esusuario = true/false

'Declaración explícita de vbles.
Option Explicit

'Declaramos el objeto Scripting Context que se
'empleará para hacer la interfaz con la página
'ASP que utiliza al objeto
Private objSC As ScriptingContext
Private objApplication As Application
Private objResponse As Response
Private objRequest As Request
Private objServer As Server
Private objSession As Session

'Objetos de base de datos
Private objBase As ADODB.Connection
Private objTabla As ADODB.Recordset


'Cuando se arranca la página ASP que crea el objeto COM,
'se inicia el evento OnStartPage
Public Sub OnStartPage(ByVal ContextoScript As ScriptingContext)

Set objSC = ContextoScript
Set objResponse = objSC.Response
Set objApplication = objSC.Application
Set objRequest = objSC.Request
Set objServer = objSC.Server
Set objSession = objSC.Session

'Objetos de base de datos
Set objBase = New ADODB.Connection
objBase.Open "BaseUsers"

End Sub


'Esta funcion indica si el usuario que ha entrado en la
'pagina es correcto o no
Public Function EsUsuario() As Boolean

Dim SQL As String

SQL = "SELECT Count(*) FROM USERS WHERE "
SQL = SQL & "LOGIN = '" & objRequest.Form("login") & "' AND "
SQL = SQL & "PASSWORD = '" & objRequest.Form("password") & "'"
Set objTabla = New ADODB.Recordset
objTabla.Open SQL, objBase, 3, 3

If objTabla(0) = 0 Then
EsUsuario = False
Else
EsUsuario = True
End If

objTabla.Close
Set objTabla = Nothing
End Function


Public Sub OnEndPage()

'Objetos de base de datos
objBase.Close
Set objBase = Nothing

'Destruimos los objetos
Set objResponse = Nothing
Set objApplication = Nothing
Set objRequest = Nothing
Set objServer = Nothing
Set objSession = Nothing
Set objSC = Nothing

End Sub



Saludos y suerte

Última edición por enrib4; 08/06/2004 a las 15:52
  #3 (permalink)  
Antiguo 09/06/2004, 02:26
 
Fecha de Ingreso: noviembre-2003
Ubicación: Alicante
Mensajes: 111
Antigüedad: 20 años, 5 meses
Puntos: 1
Gracias Enrib por tu tiempo y tu ejemplo,

El problema es que no me dejan registrar en el servidor DLL. Tal y como dice el tecnico del servidor donde tengo alojada la pagina dice lo siguiente

"la necesidad de que esa dll esté desarrollada en .Net es debido a que en nuestros servidores de alojamiento compartido no realizamos ningún registro de dll."

Las dll que nos proporciona el banco con el que tenemos contratado el TPV no tiene las dll desarrolladas en .Net

Este es el problema, una posible solucion que me dieron del banco tal y como pone mi anterior post era la de "Por tanto la alternativa mejor seria una pequeña aplicación en Visual Basic donde se centralizase el llamamiento a la DLL. "

La DLL no puede ser registrada en el servidor.

Gracias , un saludo
  #4 (permalink)  
Antiguo 09/06/2004, 02:39
 
Fecha de Ingreso: enero-2004
Mensajes: 396
Antigüedad: 20 años, 3 meses
Puntos: 0
Entonces , si la DLL no puede ser registrada en el servidor no puedes hacer nada...

De todas formas,no se yo el hosting que te has buscado que no te deja registrar en el servidor nada.... ademas, si lo haces en VB, tendras que crear un instalable de la aplicacion, por lo que la DLL se registrara cuando la aplicacion sea instalada en el servidor... a no ser que lo que te digan es que la aplicacion en VB la ejecutes en tu maquina.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:08.