Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   DLL Misteriosa (https://www.clubdelphi.com/foros/showthread.php?t=60271)

Berto2003 26-09-2008 08:37:04

DLL Misteriosa
 
Hola a tod@s,

Tengo una dudilla. He estado mirando en los históricos de los foros pero no he podido o he sabido encontrar nada relacionado, es un tema al raro. Tengo un programa desarrollado en Delphi 5 y una librería. La llamada desde el programa es más o menos de la siguiente forma:

Código Delphi [-]
           try
              bibliot:=LOADLIBRARY('MILIB.DLL');

              IF bibliot >= HINSTANCE_ERROR THEN
              begin
                Try
                  @Func:=GETPROCADDRESS(bibliot,'programa');
                Finally
                  registro:=Func(Application, ... {parámetros} );
                End;
              end;

           finally
               SetLastError(0);
               FREELIBRARY(bibliot);   // <--- Aquí se cierra el programa 
          end

El problema es que justo al realizar el freelibrary de la librería se cierra el programa entero. Esto lo he averiguado poniendo ShowMessage antes y después de la liberación. Pero lo raro es que el mismo programa con la misma librería y misma configuración funciona perfectamente en otros equipos. He estado viendo en detalle la función FreeLibrary pero no he encontrado nada que pueda darme alguna pista. ¿Podría ser algún problema de memoria del equipo? ¿O tal vez algo del Sistema Operativo? Por cierto, el S.O. es Windows XP Professional.

Espero haberme explicado bien,
Gracias por todo.


Saludos, :)

seoane 26-09-2008 12:29:24

No lo he probado, pero el problema no sera que falla la funcion LoadLibrary y estas llamando a FreeLibrary con un parametro incorrecto :confused:

roman 26-09-2008 17:04:28

Acabo de probar FreeLibrary con números al azar y no pasa nada catastrófico. De hecho no pasa nada :D

Entiendo que LoadLibrary regresa 0 (null) si no puede cargar la biblioteca, de manera que no creo que vaya por ahí el problema.

Me imagino que el problema está dentro de la propia bibiloteca, quizá algún apuntador mal manejado, o uso de strings, que se refleja al momento de descargarla.

// Saludos

Berto2003 07-11-2008 13:02:46

Hola de nuevo,

¿Sabeis si hay algún problema con FreeLibrary y sistemas Windows de 64 bits?

Saludos,

cHackAll 07-11-2008 19:51:07

Cita:

Empezado por Berto2003 (Mensaje 324606)
...¿Sabeis si hay algún problema con FreeLibrary y sistemas Windows de 64 bits?...

Talvez


La franja horaria es GMT +2. Ahora son las 12:05:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi