Asp y Dll.Net (parámetros ByRef)

03/02/2004 - 17:32 por xandre | Informe spam
Tengo una dll hecha en VB.Net que tiene procedimientos a
los cuales se le pasan parámetros por referencia dado que
se actualizan dentro de ellos.
El problema está en que el asp llamo a esos procedimientos
pasandoles los objetos y hasta aquí no hay problema, pero,
esos objectos tienen que volver actualizados y realmente
no sucede eso, queda el objeto tal cual se modificó antes
de llamar a dicho procedimiento.

Ejemplo:

Web ASP:
Dim varA
Dim varB

varA = 20

Dim cn
set cn = CreateObject("MyDll.Conexion")

'varA = 20, varB = 0
cn.GetVarB(varA, varB)

'varA = 0, varB = 0
Response.Write(varB)


Dll Vb.Net
Public Sub GetVarB(ByVal myVarA As Integer, ByRef myVarB
As Integer)
myVarB = myVarA * 2
myVarA = 0
End Sub


varB (en el ASP) debería ser 40, sin embargo es 0.

Espero que alguien encuentre la solución.

Un saludo
 

Leer las respuestas

#1 urko
03/02/2004 - 17:45 | Informe spam
cuando llamas a la dll
cn.GetVarB(varA, varB)
igual tendrias que pasarlo

cn.GetVarB($varA, $varB)
digo antes de cada variable un $ o otro caracter
exactamente no se que va antes de cada variable pero para indicar que le
pasas por referencia.
saludos
urko


"" escribió en el
mensaje news:8e9b01c3ea73$44fff6b0$
Tengo una dll hecha en VB.Net que tiene procedimientos a
los cuales se le pasan parámetros por referencia dado que
se actualizan dentro de ellos.
El problema está en que el asp llamo a esos procedimientos
pasandoles los objetos y hasta aquí no hay problema, pero,
esos objectos tienen que volver actualizados y realmente
no sucede eso, queda el objeto tal cual se modificó antes
de llamar a dicho procedimiento.

Ejemplo:

Web ASP:
Dim varA
Dim varB

varA = 20

Dim cn
set cn = CreateObject("MyDll.Conexion")

'varA = 20, varB = 0
cn.GetVarB(varA, varB)

'varA = 0, varB = 0
Response.Write(varB)


Dll Vb.Net
Public Sub GetVarB(ByVal myVarA As Integer, ByRef myVarB
As Integer)
myVarB = myVarA * 2
myVarA = 0
End Sub


varB (en el ASP) debería ser 40, sin embargo es 0.

Espero que alguien encuentre la solución.

Un saludo

Preguntas similares