FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
Llamadas a DLL
A ver, os cuento el problema a ver cual creeis que es la mejor solucion.
Tengo una aplicacion que con unos parametros que recibe de 'da igual donde' realiza unos calculos. Pues bien, esos calculos deben de ser diferentes para cada cliente, y mi idea es crear varias dll y que la aplicacion llame a una u otra depende del cliente. Pongo un ejemplo Tengo una serie de numeros, 4, 5, 6 y 7. El cliente A quiere que le muestre por pantalla la suma de los numero 4+5+6+7=22 El cliente B quiere que le muestre el numero mas alto (4,5,6,7)=7 El cliente C quiere que le muestre la media (4+5+6+7)/4=5.5 El cliente D quiere que le envie por RS232 el numero mas alto 7 Visto esto seria un absurdo hacer 4 programas diferentes, por lo que he creado un unico programa donde a groso modo hago esto Inicio de la aplicacion Si cliente = A entonces LoadLibrary( 'ClienteA.dll') Si cliente = B entonces LoadLibrary( 'ClienteB.dll') Si cliente = C entonces LoadLibrary( 'ClienteC.dll') Si cliente = D entonces LoadLibrary( 'ClienteD.dll') todas las dll tienen un procedimiento llamado 'Procesardatos'; ........ Instruccion 001; Instruccion 002; Instruccion 003; Procesardatos( 4,5,6,7); //Aqui ejecuta el procesardatos de la dll que tenga cargada Instruccion 004; Instruccion 005; fin del programa ........ ¿Que tal veis esta solucion?, ¿Alguna forma mejor de hacerlo? |
#2
|
|||
|
|||
Igual para tu caso en concreto la idea que planteas es la mejor, despues de todo lo conoces bien.
En mi opinión y mas genéricamente, en lugar de distintas dll tendría distintos procedimientos y decidiría cual lanzar dependiendo de una configuración que almacenariamos en el registro de windows, en un ini, o en un fichero con el formato que tengamos. Si es una aplicación de consola también puedes decidir añadir un primer parametro y que dependiendo del valor de este se decida que hacer con los siguientes. Esto permitiria a un cliente realizar cualquiera de los procesos posibles, incluso los 3 solo cambiando un parametro de configuración. Yo las dll las dejo solo para cuando lo que tengo que ejecutar debo lanzarlo desde varias aplicaciones distintas y tampoco siempre. Última edición por engranaje fecha: 28-01-2015 a las 13:59:32. |
#3
|
|||
|
|||
Lo comento porque el tema de las dll o no lo controlo bien o windows no las gestiona bien, ya que casi siempre que las he utilizado el pc acaba volviendose lento, cosa que se soluciona reiniciando.
Tengo que decir que el PC puede tirarse semanas incluso meses trabajando en la aplicacion las 24 horas de dia. |
#4
|
||||
|
||||
A mi no me parece un mal enfoque.
Puedes decidir entre BPL's o DLL's.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Sobre la dll que realentizan el pc.. yo utilzo dll que también estan trabajando todo el día y no noto que realentizen el equipo. Es verdad que con mis primeras dll si me pasaba pero era porque no liberaba bien la memoria y al final con cada nueva llamada que hacía a alguna función de la dll mas memoria que utilizaba.
Puedes revisar eso, si las dll las enlazas en estatico y no tienes cuidado con como creas y liberas los objetos la dll puede empezar a ocupar cada vez mas memoria. El problema mas habitual que me he encontrado con las dll es que según lo que haga en ellas a ciertos antivirus no les gusten. Última edición por engranaje fecha: 30-01-2015 a las 10:01:28. |
#6
|
||||
|
||||
Pero eso seria lo mismo que hacer algo como esto
Yo lo que quiero decir es que tu programa no tiene que andar preguntando a ver que cliente es (y cuando tengas 1 millon de clientes vas a estar 1 millon de veces preguntando a ver cual es ???) Lo que debes hacer es tener varias versiones de la DLL si, pero luego cuando entregas tu programa le pones un nombre generico a la dll, y tu programa lo que hace es cargar siempre esa dll y ejecutar el procesardatos Me explico? |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Identificador de llamadas... | Sinaloense | Varios | 4 | 07-07-2007 21:31:51 |
2 llamadas a ShellExecute | D-MO | Varios | 13 | 23-08-2006 18:57:14 |
Identificador de llamadas en .NET | edalmasso | Varios | 1 | 18-05-2006 17:02:35 |
Llamadas al sistema | Juan Fuentes | API de Windows | 1 | 16-03-2005 16:22:49 |
ID llamadas telefononicas | vichovi | API de Windows | 3 | 19-07-2004 13:14:18 |
|