Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=26)
-   -   DLLs (https://www.clubdelphi.com/foros/showthread.php?t=59797)

Aleca 09-09-2008 16:18:35

DLLs
 
:confused:Tengo una dll creada en delphi que funciona bien si esta en la misma carpeta del *.exe que llama, la pregunta es como hago para que me lea la dll desde una carpeta ubicada en otro equipo (Server)?

desde ya muchas gracias.

donald shimoda 09-09-2008 16:45:13

Cita:

Empezado por Aleca (Mensaje 312794)
:confused:Tengo una dll creada en delphi que funciona bien si esta en la misma carpeta del *.exe que llama, la pregunta es como hago para que me lea la dll desde una carpeta ubicada en otro equipo (Server)?

desde ya muchas gracias.

Para utilizar cualquier dll en windows que no este en la propia carpeta del exe debes registrarla. Ahora registrar una dll que no esta en el propio equipo donde se ejecutara la aplicación me parece algo riesgoso y que te traerá dolores de cabeza.

Si tu idea es centralizar mantenimiento porque mejor no colocas tu exe y tu dll en la misma carpetad compartida del servidor?

Saludos.

Neftali [Germán.Estévez] 09-09-2008 17:00:44

No se si podrás cargarla dinámicamente con LoadLibrary, ni si es eso lo que necesitas, de todas formas me parece algo bastante raro.
Deberías explicar un poco mejor lo que quieres hacer y porqué esa necesidad, porque yo, como ya te han dicho, que eso te va a dar problemas.

Aleca 09-09-2008 19:18:19

Cita:

Empezado por Neftali (Mensaje 312809)
No se si podrás cargarla dinámicamente con LoadLibrary, ni si es eso lo que necesitas, de todas formas me parece algo bastante raro.
Deberías explicar un poco mejor lo que quieres hacer y porqué esa necesidad, porque yo, como ya te han dicho, que eso te va a dar problemas.

La idea es tener esa libreria en el server para no tener una copia en cada cliente, asi cuando se actualiza la libreria no tengo que copiarla a cada equipo cliente.

Aleca 09-09-2008 19:22:39

Cita:

Empezado por donald shimoda (Mensaje 312806)
Para utilizar cualquier dll en windows que no este en la propia carpeta del exe debes registrarla. Ahora registrar una dll que no esta en el propio equipo donde se ejecutara la aplicación me parece algo riesgoso y que te traerá dolores de cabeza.

Si tu idea es centralizar mantenimiento porque mejor no colocas tu exe y tu dll en la misma carpetad compartida del servidor?

Saludos.

Porque puede ser riesgoso?

donald shimoda 09-09-2008 19:44:08

Cita:

Empezado por Aleca (Mensaje 312850)
La idea es tener esa libreria en el server para no tener una copia en cada cliente, asi cuando se actualiza la libreria no tengo que copiarla a cada equipo cliente.

Entonces porque no usas el modelo que te sugiero? Tanto exe como dll en una carpeta compartida en el servidor? Acaso tu aplicación no será actualizada regularmente también? :rolleyes:

Por eso te decía que la mejor solución a mi entender es poner la App completa en el servidor, en ese caso no necesitas registrar la dll.

donald shimoda 09-09-2008 19:46:11

Cita:

Empezado por Aleca (Mensaje 312853)
Porque puede ser riesgoso?

Porque si el path a esa dll cambia a windows le va a doler una muela. Y todos sabemos como se pone windows cuando le duele una muela, no se lo deseo ni al peor enemigo.:D
Riesgoso en el sentido de pesado de mantener, no riesgoso a nivel seguridad, use mal el adjetivo, perdón.:eek:

Saludos

fer21unmsm 09-09-2008 20:25:22

Como te recomienda el compañero Donald es lo mejor, aparte de la seguridad y otros problemas que se aplicarían sería ineficiente, pudiendolo tener en la misma pc de cada cliente, aparte que el servidor evita esa pequeña sobrecarga (si es que la hay), de repente tal vez lo que deseas es actualizar en cada cliente dicha dll de forma automática obtiendo la ultima versión del servidor, más o menos como los antivirus que actualizan su motor de búsqueda de forma regular, para eso puedes crearte un agente que acompañe al programa cliente, y dicho agente se encargaría de forma oculta y autónoma(para no molestar al usuario) de realizar las actualizaciones, tal vez conectandose a un puerto del servidor para que descargue la última versión de la dll, teniendo en cuenta siempre la seguridad, si los vas a usar internamente, no vas a publicar para que pueda acceder todo el mundo a dicha dll, y también el servidor donde colocar las actualizaciones no debe ser muy relevante ni crítico.

Bueno más o menos eso es lo que he captado.

Saludos cordiales.

Aleca 09-09-2008 20:35:53

Cita:

Empezado por fer21unmsm (Mensaje 312893)
Como te recomienda el compañero Donald es lo mejor, aparte de la seguridad y otros problemas que se aplicarían sería ineficiente, pudiendolo tener en la misma pc de cada cliente, aparte que el servidor evita esa pequeña sobrecarga (si es que la hay), de repente tal vez lo que deseas es actualizar en cada cliente dicha dll de forma automática obtiendo la ultima versión del servidor, más o menos como los antivirus que actualizan su motor de búsqueda de forma regular, para eso puedes crearte un agente que acompañe al programa cliente, y dicho agente se encargaría de forma oculta y autónoma(para no molestar al usuario) de realizar las actualizaciones, tal vez conectandose a un puerto del servidor para que descargue la última versión de la dll, teniendo en cuenta siempre la seguridad, si los vas a usar internamente, no vas a publicar para que pueda acceder todo el mundo a dicha dll, y también el servidor donde colocar las actualizaciones no debe ser muy relevante ni crítico.

Bueno más o menos eso es lo que he captado.

Saludos cordiales.

El programa controla cada vez que se inicia si hay una actualizacion en el server y si la hay se actualiza, pero queria ver otra posibilidad.
desde ya muchas gracias a todos.
:)

Neftali [Germán.Estévez] 10-09-2008 09:23:26

Cita:

Empezado por Aleca (Mensaje 312850)
La idea es tener esa libreria en el server para no tener una copia en cada cliente, asi cuando se actualiza la libreria no tengo que copiarla a cada equipo cliente.

Es una operación sencilla que puedes hacer al arrancar la aplicación.
Piensa que aunque consiguieras hacerlo, la carga de esta manera sería más lenta, más arriesgado (como te han dicho) y al final acabas cargándola en igual en memoria.

Creo que vale la pena tenerla junto al programa.

AÑADO: Veo que ya se aclaró la cosa...

Aleca 10-09-2008 11:04:54

Dll
 
Gracias a todos y veo que no venia tan errado en la forma de trabajar :)


La franja horaria es GMT +2. Ahora son las 00:33:02.

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