Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: k_arlytos en Agosto 13, 2009, 02:44:06 pm

Título: donde termina una dll
Publicado por: k_arlytos en Agosto 13, 2009, 02:44:06 pm
hola que tal una sugerencia en q momento termina una dll cuando le hago
dim x as new dll
set x=nothing ----------> que sucede aqui
o cuando si esque la variable esta declarado en un pocedimiento de un boton que digamos
sub btnopera_click()
dim x as new dll
procesos que hago con la dll
.
.
.
.
.
end sub ' en este punto llama a el evento terminate de la dll
o que sucede en este punto
Título: Re:donde termina una dll
Publicado por: LeandroA en Agosto 13, 2009, 03:54:07 pm
Hola, si la declaras como as new en un formulario en la parte superior y no la descargas con Set C = Nothing en algun momento, esta se termina cuando se descarga el formulario

si la declaras dentro de un evento esta se termina al salir del evento

Código: [Seleccionar]
Private Sub Command1_Click()
   Set C = New Class1
   Debug.Print C.Suma(2, 3)
End Sub

pero si la declaras en la parte superior del formulario
y la inicializas en un evento esta no se descarga al salir del evento a menos que lo agas tu mismo (Set C = Nothing), lo hara al descargar el formulario

para que hagas tus propios experimentos y saques tus concluciones hace los siguiente

crea un modulo Clase y pone el siguiente codigo
Código: [Seleccionar]
Option Explicit

Private Sub Class_Initialize()
Debug.Print "estoy Inicializada"
End Sub

Private Sub Class_Terminate()
Debug.Print "estoy descargada"
End Sub

Public Function Suma(Byval valor1 As Long,Byval  valor2 As Long) As Long
Suma = valor1 + valor2
End Function

vas a ver que si vos declaras
Dim C As New Class1
el sub Initialize de la clase no se dispara asta que no llames una funcion de la clase
creo que aver leido alguna ves que no es aconsejable declararlo asi, no tengo ni idea porque
lo mejor es declararla y luego inicializarla

Código: [Seleccionar]
Option Explicit
Dim C As New Class1

Private Sub Form_Load()
     Set C = New Class1
End Sub

tambien creo que es aconsejable descargarla  (Set C = Nothing) por las dudas

Saludos
Título: Re:donde termina una dll
Publicado por: cobein en Agosto 15, 2009, 02:02:09 am
"Inicializarla" no es garantia de que el sub Initialize se ejecute, si la declaras as new no va a pasar nada hasta que se utilize la clase.