Librerias de Enlace Dinamico

download Librerias de Enlace Dinamico

of 10

Transcript of Librerias de Enlace Dinamico

LIBRERIAS DE ENLACE DINAMICO (DLL)

ESTUDIANTES: CLAUDIA NIEVES REYES JEISON ARCIA

PRESENTADO A: LUIS OLASCUAGA

ASIGNATURA: LENGUAJES DE PROGRAMACION

UNIVERSIDAD DE CORDOBA V SEMESTRE TECNOLOGIA EN SISTEMAS DE INFORMACION MONTERIA 2.005

OBJETIVOS

OBJETIVO GENERAL Definir con claridad lo que son las DLL (Biblioteca de Vinculacin Dinmica) y dar a conocer su utilidad en el mundo de la programacin. OBJETIVOS ESPECFICOS Explicar como crear una DLL en Delphi Afianzar el uso de funciones en una DLL Desarrollar un ejemplo practico como muestra de una DLL en Lenguaje Delphi

INTRODUCCION

A travs del tiempo en el mundo de la programacin, alguna vez se crearon rutinas o recursos que queramos utilizar en nuestros programas; estas rutinas las podemos tener disponibles para nuestro sin fin numero de aplicaciones. Resulta una solucin prctica si el contenido de la DLL es utilizado con frecuencia en muchas aplicaciones, pues ellas facilitan el mejor uso del cdigo ya que con su llamado a varios proyectos este se cargara una sola vez, reduciendo as el espacio en disco y en memoria, adems estas DLLs podran ser utilizadas en otros lenguajes de programacin. A continuacin explicaremos la definicin, creacin y uso de funciones de las libreras dinmicas.

QU ES UNA DLL? Una librera DLL Dynamic Link Library (Librera de Enlace Dinmico), es un archivo ejecutable en donde se encuentran funciones o Recursos que pueden ser llamados y utilizados por cualquier aplicacin en tiempo de ejecucin. La ventaja de las DLL frente a las libreras convencionales es que slo se cargan en memoria, cuando se necesitan los recursos de esa DLL. El objetivo que se persigue con la creacin de libreras de funciones, como las DLLs, es poder aprovechar el mismo cdigo desde diferentes aplicaciones, lo que supone un ahorro evidente en cada una de esas aplicaciones. Para que crear una funcin nueva para llevar a cabo lo mismo que me ofrece una funcin ya creada y probada. LAS CARACTERSTICAS DE UN SISTEMA QUE UTILIZA DLLs SON: Las aplicaciones ligan el cdigo de la librera, reduciendo el espacio de almacenamiento y evitando la duplicacin de cdigo. Una aplicacin que utiliza DLLs se comporta idnticamente a cualquier otra aplicacin que utiliza las mismas DLLs. Si un problema surge, o se quiere aadir una nueva caracterstica, simplemente se actualizan las DLLs y todas las aplicaciones resultan beneficiadas. Ventajas e Inconvenientes del uso de DLLs VENTAJAS Una funcin definida dentro de una DLL se encuentra disponible para cualquier aplicacin Windows.

Reduccin del tamao de las aplicaciones que utilizan la DLL, por la Reutilizacin de su cdigo. Este hecho comporta dos ventajas aadidas, como son: Mejora en el tiempo de compilacin y/o carga de la aplicacin puesto que el tamao del cdigo se ha reducido. Ahorro de espacio en disco, esa funcin se encuentra una sola vez en el disco, independientemente del nmero de aplicaciones que la usen. Las DLLs son independientes de la aplicacin Para poder acceder a las funciones de esa DLL, existen dos mtodos alternativos, que denominaremos: Llamada Esttica y Llamada Dinmica a una DLL LLAMADA ESTTICA A DLL Tambin conocido como Enlace Esttico, es un mtodo que emplea la librera esttica (archivo .lib) generada durante el proceso de creacin de la DLL. En este mtodo, durante el proceso de compilacin de la aplicacin se produce el enlace entre la DLL y la aplicacin que la va a usar. Ms en concreto se produce durante el proceso de linkado de la aplicacin que va a usar la DLL, cuando se enlazan los mdulos objeto (.obj), los archivos de libreras en tiempo de ejecucin (.lib) y, en el caso de existir, los archivos de recursos compilados (.res) para generar un nico archivo ejecutable (.exe) para Windows. A partir de esto, se puede deducir que la librera queda incluida dentro del archivo ejecutable, lo que lleva consigo una serie de ventajas, como pueden ser: Al estar incluida dentro del ejecutable, la librera se carga al inicio de la aplicacin y se descarga al finalizar la ejecucin de nuestra aplicacin. Esto hace que se

cumpla uno de los requisitos de las DLLs consistente en que siempre deben estar presentes. La llamada a las funciones contenidas en la DLL se realizar de igual forma como se realizan las llamadas a cualquier otra funcin implementado en el cdigo de nuestra aplicacin. Esto es debido a que se encuentran en la misma zona de memoria de la aplicacin y, como se conoce su posicin exacta, ya que se ha fijado durante la carga del ejecutable. Este aspecto, favorece mucho la implementacin del cdigo necesario para el acceso a las funciones de la DLL. LLAMADA DINMICA A DLL La Llamada Dinmica a DLL, tambin conocido como Enlace Dinmico, es un mtodo que emplea la librera dinmica (archivo .dll) generada durante el proceso de creacin de la DLL. En este mtodo, el enlace entre la DLL y la aplicacin que la va a usar, se producir durante la ejecucin de la aplicacin. Como se ha visto antes, la Llamada Esttica aseguraba la presencia de la DLL en todo momento. La Llamada Dinmica apuesta por tener un mayor control sobre los procesos de carga/descarga de la DLL, as como obtener una mayor independencia entre la DLL y la aplicacin que la va a usar. Entonces, la DLL no ser incluida dentro del ejecutable, sino que ser cargada cuando sea necesaria y ser descargada en el momento en que ya no sea necesaria. Esta carga/descarga de la DLL en funcin de su uso, nos permite una mejor gestin de los recursos, pues no ocupar espacio en memoria, a menos que sea necesario. Adems, nos proporcionar un alto grado de control sobre el proceso de carga y descarga de la DLL.

Vamos a llevar esto a la prctica. Cuando se desee acceder a las funciones implementadas dentro de la DLL, deberemos proceder, si es necesario, a cargarla en memoria de la DLL. ANATOMA DE UNA UNIDAD DLL Una unidad dll sigue un formato. library mensage; uses SysUtils, Classes, Dialogs; {$R *.res} procedure MensajeDll; export; begin ShowMessage('Hola esto es un mensaje de Delphi en DLL'); end; exports MensajeDll; end. 1. La palabra clave library en la parte superior identifica a esta unidad como una unidad DLL, Esta DLL tiene un solo procedimiento llamado MensajeDll. 2. La palabra clave exports que se encuentra en la parte inferior de la unidad. Cualquier identificador de procedimiento o funcin de la seccin de exportaciones es exportado desde la DLL. En este caso, lo que se exporta es el procedimiento MensajeDll. En la seccin "La palabra clave exports" se explica con detalle la exportacin de funciones y procedimientos. Por ltimo, al final de la unidad DLL se pueden ver las palabras clave begin y end. Este bloque de cdigo es el bloque principal de la DLL y es ah donde se coloca el cdigo que la DLL necesita para ejecutarse al cargarse inicialmente.

FUNCIONES Y PROCEDIMIENTOS EN DLLS Las funciones y procedimientos de una DLL se dividen en dos categoras bsicas: Funciones y procedimientos locales de la DLL Funciones y procedimientos exportados desde la DLL FUNCIONES Y PROCEDIMIENTOS LOCALES DE LA DLL Las funciones y procedimientos que se llaman dentro de una DLL no requieren de ningn manejo especial. Este tipo de funcin o procedimiento se declara como cualquier funcin o procedimiento. La funcin o procedimiento puede ser llamado por otras funciones dentro de la DLL, pero no puede ser llamado desde afuera de la DLL. En otras palabras, una aplicacin invocadora no tendr acceso a estas funciones y procedimientos. Pueden considerarse como exclusivas de la DLL, as como los mtodos privados de una clase son exclusivos para la clase en la que residen. En efecto, una aplicacin invocadora no ser capaz de "ver" las funciones y procedimientos ni saber siquiera que existen. FUNCIONES Y PROCEDIMIENTOS QUE SE EXPORTAN DESDE LA DLL La otra categora de funciones y procedimientos comprende aqullos que pueden llamarse desde afuera de la DLL. stos son procedimientos y funciones que se hacen pblicos exportndolos desde la DLL. de la DLL. Las funciones y procedimientos contenidos en una DLL pueden ser llamados por aplicaciones ejecutadas y tambin por otras DLLs. En otras palabras, una DLL puede llamar a las funciones y procedimientos de otra DLL. Una vez que una funcin o procedimiento ha sido exportado, puede llamarlo desde la aplicacin. Pueden ser llamados por otras funciones y procedimientos en la DLL o por aplicaciones que se encuentran fuera

La palabra clave exports Para exportar una funcin o procedimiento se emplea la palabra clave exports en la DLL. Obtener un ejemplo de una DLL que exporta un procedimiento llamado DiHola. Debido a que el procedimiento DiHola ha sido exportado, puede llamarse desde cualquier aplicacin Delphi. Exportacin por nombre La manera ms comn de exportar funciones y procedimientos es por nombre por ejemplo: exports DiHola, HazAlgo, HazOtraCosa; Estos procedimientos son exportados por su nombre de identificador. La seccin exports tiene una sintaxis similar a la de una lista uses. Cada identificador a exportar se lista separado por comas. Despus del ltimo identificador de la lista se coloca un punto y coma.

CONCLUSION

Las DLLs son una solucin prctica para reutilizar cdigo. Despus de crear una DLL, estas pueden ser llamarlas desde cualquier aplicacin que requiera de la funcionalidad que ofrece el cdigo de dicha DLL. Colocar cdigo en una DLL y luego llamarlo desde una aplicacin no escrita en Delphi es una caracterstica muy eficaz.