Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-08-2005
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Caso con DLL.

Tengo una DLL e hice la prueba de eliminarla para ver si mi programa iniciaba. El resultado es que el programa se cierra luego de mostrar este mensaje:

Cita:
Error al iniciar la aplicación porque no se encontró xxxxx.dll. La reinstalación de la aplicación puede solucionar el problema.
Esto quiere decir que si un usuario elimina por error esta librería no podrá volver a iniciar el programa.

Lo que deseo es saber si hay forma de que el programa se pueda ejecutar aunque la librería no esté presente, ya que no es estrictamente necesaria para el funcionamiento del programa.

Gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #2  
Antiguo 18-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Hay una contradicción en lo que dices, porque, si la librería no es estrictamente necesaria para el programa, ¿cómo es que el programa no puede trabajar sin esa librería?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 18-08-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
Si te da ese error es que el programa, lógicamente, está haciendo uso de alguna función que se encuentra implementada en la .dll, por lo que es imposible ejecutarlo si dicha .dll no está.

(La única solución que veo, si tienes el código fuente, es modificar el programa para que no use esa .dll)

Chao!
Responder Con Cita
  #4  
Antiguo 18-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hasta donde entiendo tendrás que cargar manualmente la librería con LoadLibrary y asignar las funciones contenidas en ellas con GetProcAddress. Deberás quitar cualquier referencia a la librería que tengas en tu código para que no se cargue automáticamente. Por ejemplo, cualquier importación

Código Delphi [-]
procedure blablabla; external 'libreria.dll';

hará que se cargue en automático.

// Saludos
Responder Con Cita
  #5  
Antiguo 18-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dec
Hay una contradicción en lo que dices, porque, si la librería no es estrictamente necesaria para el programa, ¿cómo es que el programa no puede trabajar sin esa librería?
El programa no puede trabajar de entrada porque la librería se carga en automático y al no estar presente falla la entrada al programa.

Pero esto no significa que siempre sea necesaria. Es posible que sólo algún módulo del programa utilice la librería. Mientras no se use dicho módulo el programa puede funcionar.

De ahí, supongo, la necesidad de poder ejecutar la aplicación aún sin la librería. Sólo los módulos que la usen estarían inhabilitados.

// Saludos
Responder Con Cita
  #6  
Antiguo 18-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Puede ser roman. No lo vi yo por ese lado, sino por otro. El programa hace uso de la librería, depende de esta, en más o menos, en un módulo u otro, por tanto, si se quita la librería el programa (al completo) no funcionará correctamente. Ahora, si se trata de que algunos módulos funcionen y otros no... ¿no habrá otra forma de hacer las cosas que no quitando y poniendo la librería de marras?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 18-08-2005
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
roman tiene razón. Lo que él dice es exactamente lo que sucede. La librería se usa sólo desde una ventana de mi aplicación, y no es crítica para el funcionamiento del sistema. Aunque claro, si no está algo no funcionará, pero es muy poco en realidad.

Muchas gracias por su respuesta. Voy a trabajar con LoadLibrary y GetProcAddress.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #8  
Antiguo 18-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por mlara
roman tiene razón.
No solamente tiene razón, si tú lo dices, pero además ciertas dotes de adivino, dicho sin ánimo de ofender, naturalmente.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:24:25.


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
Copyright 1996-2007 Club Delphi