Consulta de código implementado en visual basic con error en archivo dll
Tengo es te dll:
Function rposi(n As Double) As Double
'////////////////////////////////////////
Dim aux As Double
Dim d1 As Double
Dim a1 As Double
Dim b1 As Double
Dim c1 As Double
Dim r As Double
'////////////////////////////////////////
On Error GoTo manejador_errores
a1 = avar
b1 = bvar
c1 = cvar4
aux = CInt(b1 ^ 2 - 4 * a1 * c1)
d1 = Math.Sqr(aux)
r = -(b1) + d1
If aux > 0 Then
n = r / (2 * a1)
rposi = n
Else
If aux = 0 Then
n = -(b1) / (2 * a1)
rposi = n
End If
End If
Exit Function
manejador_errores:
If Err.Number = 5 Then
MsgBox ("b no puede ser menor que a y c si A y C son negativos")
Resume Next
End If
End Function
Function rneg(n1 As Double) As Double
'////////////////////////////////////////
Dim aux2 As Double
Dim d2 As Double
Dim a2 As Double
Dim b2 As Double
Dim c2 As Double
Dim r2 As Double
'////////////////////////////////////////
On Error GoTo manejador_errores
a2 = a
b2 = b
c2 = c
aux2 = CInt(b2 ^ 2 - 4 * a2 * c2)
d2 = Math.Sqr(aux2)
r2 = -(b2) - (d2)
If aux2 > 0 Then
n1 = r2 / (2 * a2)
X2.Text = n1
Else
If aux2 = 0 Then
n1 = -(b2) / (2 * a2)
X2.Text = n1
End If
End If
Exit Function
manejador_errores:
If Err.Number = 5 Then
MsgBox ("b no puede ser menor que a y c si A y C son negativos")
Resume Next
End If
End Function
Y tengo una forma que llama al dll, el problema es que, llama al la función rposi y rneg que calculan la raíz cuadrática de una ecuación lo que no se es como hacer que el dll lea las variables que se introducen es esta forma:
Dim objeto As HIM_O.HIM
Private Sub botonx1_Click()
x1 = objeto.rposi(avar, bvar, cvar4)
End Sub
Private Sub Form_Load()
Set objeto = New HIM_O.HIM
End Sub
Private Sub limpiar4_Click()
x1.Text = ""
x2.Text = ""
avar.Text = ""
bvar.Text = ""
cvar4.Text = ""
End Sub
Private Sub salir4_Click()
Unload Me
End Sub
Private Sub x2_4_Click()
x2 = objeto.rneg(avar, bvar, cvar4)
End Sub
lo que yo hice fue que en el dll puse que a1= avar
b1=bvar y c1= cvar4 pero no me corre porque no lee las variables a
Ayudame por favor
Function rposi(n As Double) As Double
'////////////////////////////////////////
Dim aux As Double
Dim d1 As Double
Dim a1 As Double
Dim b1 As Double
Dim c1 As Double
Dim r As Double
'////////////////////////////////////////
On Error GoTo manejador_errores
a1 = avar
b1 = bvar
c1 = cvar4
aux = CInt(b1 ^ 2 - 4 * a1 * c1)
d1 = Math.Sqr(aux)
r = -(b1) + d1
If aux > 0 Then
n = r / (2 * a1)
rposi = n
Else
If aux = 0 Then
n = -(b1) / (2 * a1)
rposi = n
End If
End If
Exit Function
manejador_errores:
If Err.Number = 5 Then
MsgBox ("b no puede ser menor que a y c si A y C son negativos")
Resume Next
End If
End Function
Function rneg(n1 As Double) As Double
'////////////////////////////////////////
Dim aux2 As Double
Dim d2 As Double
Dim a2 As Double
Dim b2 As Double
Dim c2 As Double
Dim r2 As Double
'////////////////////////////////////////
On Error GoTo manejador_errores
a2 = a
b2 = b
c2 = c
aux2 = CInt(b2 ^ 2 - 4 * a2 * c2)
d2 = Math.Sqr(aux2)
r2 = -(b2) - (d2)
If aux2 > 0 Then
n1 = r2 / (2 * a2)
X2.Text = n1
Else
If aux2 = 0 Then
n1 = -(b2) / (2 * a2)
X2.Text = n1
End If
End If
Exit Function
manejador_errores:
If Err.Number = 5 Then
MsgBox ("b no puede ser menor que a y c si A y C son negativos")
Resume Next
End If
End Function
Y tengo una forma que llama al dll, el problema es que, llama al la función rposi y rneg que calculan la raíz cuadrática de una ecuación lo que no se es como hacer que el dll lea las variables que se introducen es esta forma:
Dim objeto As HIM_O.HIM
Private Sub botonx1_Click()
x1 = objeto.rposi(avar, bvar, cvar4)
End Sub
Private Sub Form_Load()
Set objeto = New HIM_O.HIM
End Sub
Private Sub limpiar4_Click()
x1.Text = ""
x2.Text = ""
avar.Text = ""
bvar.Text = ""
cvar4.Text = ""
End Sub
Private Sub salir4_Click()
Unload Me
End Sub
Private Sub x2_4_Click()
x2 = objeto.rneg(avar, bvar, cvar4)
End Sub
lo que yo hice fue que en el dll puse que a1= avar
b1=bvar y c1= cvar4 pero no me corre porque no lee las variables a
Ayudame por favor
1 respuesta
Respuesta de wolfverine
1