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

¿ Liberar una libreria en VB6 ?

Estas en el tema de ¿ Liberar una libreria en VB6 ? en el foro de Visual Basic clásico en Foros del Web. Hola,,,,, Mi consulta és la siguiente : Cargo una libreria asi : FCall.LibraryName = "hola.dll" luego quiere liberarla para poder borrarla pero no se como ...
  #1 (permalink)  
Antiguo 22/07/2009, 17:03
 
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta ¿ Liberar una libreria en VB6 ?

Hola,,,,,

Mi consulta és la siguiente :

Cargo una libreria asi :

FCall.LibraryName = "hola.dll"

luego quiere liberarla para poder borrarla pero no se como ...........?

porque sinó no me deja borrarla con Kill

Si alguien lo sabe. Muchas Gracias.-
  #2 (permalink)  
Antiguo 22/07/2009, 17:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ¿ Liberar una libreria en VB6 ?

¿Qué es FCall?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 23/07/2009, 13:19
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
Respuesta: ¿ Liberar una libreria en VB6 ?

Hola tal como dice David, pero en fin si es algo esta utilizando apis seguramente utiliza destas dos
Código:
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long
por ejemplo cuando leemos una libreria hacemos lo siguiente
Código:
Dim Handle as long
Handle  = LoadLibrary("user32.dll")
Handle es la direccion en la memoria donde se encuentra la dll cargada y luego para liberarla utilizamos

Código:
FreeLibrary  Handle
Saludos
__________________
www.leandroascierto.com
  #4 (permalink)  
Antiguo 25/07/2009, 13:50
 
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 9 meses
Puntos: 0
¿ no puedo liberar una libreria !! ?

Hola,,,,

Puse este código para mi *.DLL que uso y que despúes la misma DLL tiene
una función de liberarla y además la libero con al siguiente código:

Código: Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

Private Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long
por ejemplo cuando leemos una libreria hacemos lo siguiente

Código: Dim Handle as long
Handle = LoadLibrary("hola.dll")
Handle es la direccion en la memoria donde se encuentra la dll cargada y luego para liberarla utilizamos


Código: FreeLibrary Handle

pero al final no me deja borrar mi DLL con el comando KILL, me dice que error al
acceder al archivo,,,,pero lo curioso és que una vez cerrada la aplicación,,la borro
tranquilamente y sin problema ,,,,,y me deja windows,,,,,,,

Si alguien pudierá decirme que pasa,,por que no entiendo nada,,,

Gracias,.-
  #5 (permalink)  
Antiguo 25/07/2009, 14:54
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: ¿ no puedo liberar una libreria !! ?

Para algo existe "regsvr32" para registrar y desrregistrar...

REGISTRAR:
regsvr32 nombre.dll

DESREGISTRAR:
regsvr32 /u nombre.dll

Lo mismo para ocx...
  #6 (permalink)  
Antiguo 25/07/2009, 18:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ¿ no puedo liberar una libreria !! ?

Hola, culd. Las Dynamic-Link Library no se registran; y de hecho, eso no influye en que un archivo no se pueda eliminar.

En cuanto a la pregunta. Debería funcionar sin problemas si usas FreeLibrary, ¿estás seguro de persistir el Handle para que pueda ser usado por FreeLibrary? Comprueba el valor devuelto para saber si ocurrió algún error.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 26/07/2009, 14:32
 
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta !! Misterio al liberar una libreria !! ?

Hola,,,,,

Hice la consulta anterior de ¿ no puedo liberar una libreria ?

Bien darle las gracias a DAVID (Moderador) por su aportación,, pero tampoco
funciono,, comprove el Handle después de cargar la DLL y después antes de
liberarla y conciden,,,o sea que devuelve el mismo código,,,a tener en cuenta
que cada vez que abres la aplicacíon estos números són diferentes,,,és normal
pero cada vez condice el MsgBox.....Misterio y no me deja borrarla con KILL,,
yo ya no entiendo nada,,de nada,,, Aqui va otra vez el código :

Código: Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

Private Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long
por ejemplo cuando leemos una libreria hacemos lo siguiente

Código: Dim Handle as long
Handle = LoadLibrary("hola.dll")

MsgBox "Código del Handle", vbExclamation, Handle


Handle es la direccion en la memoria donde se encuentra la dll cargada y luego para liberarla utilizamos

MsgBox "Código del Handle", vbExclamation, Handle




Código: FreeLibrary Handle


En fin, si a alguien se le ocurre alguna idea,,gracias por adelantado.-
  #8 (permalink)  
Antiguo 26/07/2009, 18:57
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: !! Misterio al liberar una libreria !! ?

Hola, ya creaste este tema como 3 veces...pone TODO EL CODIGO que tengas....TODO TODO...sino nunca vamos a saber lo que haces mal...y si es necesario subi tambien la DLL que estas tratando de cargar y despues de borrar...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #9 (permalink)  
Antiguo 26/07/2009, 19:48
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: !! Misterio al liberar una libreria !! ?

Haber hasta donde tengo entendido lo que quieres es quitarlo de memoria, con freeLibrary deberias poder hacerlo, sino te funciona quizas tenga algo que ver la forma como lo estas declarando, en todo caso fijate que valor te devuelve esta funcion y de ser posible (de devolverte algun valor) buscale o capturar el error.

Por otro lado me parece que tu programa lo esta llamando (lo estas usando) antes de cargarlo en memoria (LoadLibrary) , haber fijate si puedes eliminarlo antes de hacer el loadlibrary.

Y con respecto a: seba123neo completamente de acuerdo pon todo tu codigo sino no vamos a poder ayudarte .
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #10 (permalink)  
Antiguo 27/07/2009, 01:45
 
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 9 meses
Puntos: 0
!! Misterio resuelto de liberar una libreria !!!!

Hola a todos,,,

Primero queria dar las gracias a Todo el Forum de ForosdelWeb, ya que me parece
uno de los mejores forums en VB y sobretodo por que la gente te responde,,
y aporta comentarios importantes,,,,


Bien ya resolvi el tema,,, la cuestión és que no se porque pero a veces la programación tiene estas cosas,, usaba la función de :

FreeLibrary Handle

y después la borrava con el comando KILL mi DLL pero no me dejaba,,,pero
provando y provando se me ocurrio que igual és que no le daba tiempo a liberarla
o que aún estava en uso por eso no me dejava liberarla,,, en fin que prove con esto:

FreeLibrary Handle
FreeLibrary Handle
FreeLibrary Handle
FreeLibrary Handle
FreeLibrary Handle
FreeLibrary Handle
FreeLibrary Handle
FreeLibrary Handle

y aqui el KILL de mi DLL y funciona,,,curioso verdad puse más veces el FreeLi.
y mira por donde que Funka......

Bueno, Gracias a todos y disculpen si me hecho un poco pesado con las consultas,,pero no lo entendia,,,

Espero seguir en este forum por si tengo más consultas o puedo ayudar a alguien
con lo poco que se en VB.-

Saludos.-
  #11 (permalink)  
Antiguo 27/07/2009, 06:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ¿ Liberar una libreria en VB6 ?

Temas unidos.

Le recordamos que no está permitido abrir dos o más temas sobre un mismo asunto.
Véase: http://www.forosdelweb.com/f74/polit...el-web-101485/
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 07:40.