Está en la página 1de 22

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Competencia: Diseña e implementa componentes y librerías para lograr la


reutilización de código.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
¿Qué es una biblioteca o librería?

En informática, una biblioteca (del inglés library) es un conjunto de


implementaciones de comportamiento, escritas para un lenguaje de
programación, que tienen una interfaz bien definida para el
comportamiento que se invoca.

A diferencia de un programa ejecutable, el comportamiento que


implementa una biblioteca no espera ser utilizada de forma
autónoma (un programa sí: tiene un punto de entrada principal),
sino que su fin es ser utilizada por otros programas,
independientes y de forma simultánea.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Una biblioteca pueden requerir de otras para funcionar, pues el
comportamiento que definen refina, o altera, el comportamiento
de la biblioteca original; o bien la hace disponible para otra
tecnología o lenguaje de programación.

La mayoría de los sistemas operativos modernos proporcionan


bibliotecas que implementan los servicios del sistema. De esta
manera, estos servicios se han convertido en una "materia prima"
que cualquier aplicación moderna espera que el sistema operativo
ofrezca.

Como tal, la mayor parte del código utilizado por las aplicaciones
modernas se ofrece en estas bibliotecas.
TÓPICOS AVANZADOS DE PROGRAMACIÓN

La mayoría de los sistemas operativos modernos proporcionan bibliotecas


que implementan los servicios del sistema. De esta manera, estos servicios se
han convertido en una "materia prima" que cualquier aplicación moderna
espera que el sistema operativo ofrezca.

Como tal, la mayor parte del código utilizado por las aplicaciones modernas
se ofrece en estas bibliotecas.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Tipos de bibliotecas

• Bibliotecas Estáticas: Históricamente, las bibliotecas sólo podían ser estáticas.


Una biblioteca estática, también conocido como archivo es un fichero
contenedor con varios archivos de código objeto empaquetados, que en el
proceso de enlazado durante la compilación serán copiados y relocalizados (si
es necesario) en el archivo ejecutable final, junto con el resto de archivos de
código objeto.
• En este caso, la biblioteca actúa simplemente como un recipiente para
archivos de código objeto que no se diferencian (más que semánticamente)
de los archivos objeto intermedios producidos durante la etapa previa de
compilación del programa.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
• Bibliotecas dinámicas: Las bibliotecas dinámicas, vinculadas
dinámicamente, o de vínculos dinámicos son archivos que contienen código
objeto construido de forma independiente a su ubicación de tal modo que
están preparadas para poder ser requeridas y cargadas en tiempo de
ejecución por cualquier programa, en lugar de tener que ser enlazadas,
previamente, en tiempo de compilación.

• Por tanto, han de estar disponibles como ficheros independientes al


programa ejecutable (generalmente en directorios del sistema).
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Un archivo DLL (Dynamic Library Link) es un módulo
componente de un programa que ejecuta alguna
función. Estos archivos DLL son muy útiles, pero
también suelen ser causa de errores en Windows.

Los archivos DLL ejecutan acciones o rutinas de uso


frecuente en Windows, y un mismo archivo DLL
puede ser usado por varios programas al mismo
tiempo.

Por ejemplo el procesador de palabras, la hoja de


cálculo y otros programas pueden usar un mismo
archivo DLL para desplegar el cuadro diálogo Abrir,
cada vez que usted usa el comando Abrir.
TÓPICOS AVANZADOS DE PROGRAMACIÓN

• Gracias a ese esquema modular, hay muchas funciones que los creadores
de software no tienen que incluir en sus programas; cuando un programa
necesita enviar un documento a la impresora, simplemente llama el
archivo DLL respectivo (que ya Windows instaló) para que este cargue y
ejecute la tarea. De esa forma, los programas son más pequeños y se
ahorra espacio en el disco duro.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
• El hecho de que estos módulos de rutinas (Archivos DLL) no sean parte de
programas, sino que se guardan como archivos independientes, también
optimiza el uso de la memoria RAM.

• Un DLL se carga en la memoria RAM y se ejecuta únicamente cuando un


programa lo llama para que realice una función, mientras que otros
módulos de rutinas que sí hacen parte del programa permanecen
cargados en la memoria mientras trabaja con un programa.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
• Windows incluye muchos archivos DLL que son usados por otros
programas (la mayoría en la carpeta c:\windows\system). Pero algunos
programas también instalan sus propios archivos DLL (y generalmente los
colocan en la carpeta del disco duro en la que está guardado dicho
programa).
TÓPICOS AVANZADOS DE PROGRAMACIÓN Observaciones en el manejo de DLL
Como diferentes programas deben compartir los mismo DLL, si
algunos programas no respetan ciertas reglas del juego se pueden
producir errores.

A veces uno instala programas que colocan una versión vieja de un


archivo DLL en la carpeta c:\windows\system y remplazan sin
avisar la versión más reciente del mismo DLL. Al hacer eso, es
posible que se produzcan fallas en los programas que usaban.

No todos los archivos DLL tienen extensión .dll; también hay


archivos del mismo tipo con extensiones .ocx, .exe, .drv, .vxd, etc.

Nota: En Windows XP no es posible reemplazar un archivo DLL del sistema, ya que


este se dará cuenta y automáticamente copiara el DLL correcto.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Cuando Windows le muestre un mensaje de error que dice que le falta un DLL:

• Anote el nombre exacto del archivo (incluyendo la extensión),


• Busque el archivo en cualquiera de los sitios de Microsoft o del software en
cuestión,
• Descárguelo y cópielo en la carpeta en la que lo está buscando el programa
que generó el mensaje de error (probablemente c:\windows\system o la
carpeta en la que está almacenado el programa).
• Pruebe su aplicación de nuevo en el punto donde ocurrió el error.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
• Tenga en cuenta que puede haber versiones diferentes de Archivos DLL, pero
con un nombre idéntico. Se recomienda no remplazar un DLL por una
versión más vieja (para saber que versión tiene un DLL, busque el archivo, dé
clic derecho sobre él, seleccione propiedades y dé clic en la pestaña
Versión).

• Lo mejor es que siempre guarde en un dispositivo extraíble o alguna parte


de sus disco duro el DLL que va a reemplazar (incluso aunque sea de una
versión más vieja). Uno nunca sabe qué programa lo pueda necesitar.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Windows File Protection [WFP]
• Windows FIle Protection (WFP) protege los archivos DLL del sistema de ser
actualizadas o borradas por agentes no autorizados. Las aplicaciones no
pueden sustituir las DLLs del sistema. Únicamente los paquetes de
actualización del sistema operativo como los SP (Service Packs) pueden
hacer esto.

• Los archivos DLL del sistema que pueden ser únicamente actualizadas por
los Service Pack (SP) se denominan DLLs protegidas. Hay aproximadamente
2800 DLLs protegidas (en Windows XP).
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Windows File Protection [WFP]
• Si intentamos copiar un archivo DLL idéntico a uno protegido en el
directorio del sistema, el reemplazo del archivo DLL, aparentemente,
parecerá que es correcta y no veremos ningún mensaje de error. Pero
Windows XP recuperarán el archivo DLL recientemente copiado con el
archivo DLL original silenciosamente.

• WFP elimina completamente los errores de los archivos DLL y además


minimiza los problemas causados por instalación y/o actualización de
aplicaciones.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Pasos para crear una DLL (librería dinámica)

• Inicie Visual Studio.

• En el menú Archivo, elija Nuevo y haga clic en Proyecto.

• En el cuadro de diálogo Nuevo proyecto, en el panel Tipos de proyecto,


asegúrese de haber seleccionado Windows.
TÓPICOS AVANZADOS DE PROGRAMACIÓN

• En el panel Plantillas,
seleccione Class Library.

• En el cuadro Nombre,
escriba EjemploDLL y, a
continuación, haga clic
en Aceptar. Se crea el nuevo
proyecto.
TÓPICOS AVANZADOS DE PROGRAMACIÓN

• Se creará el código default de la DLL

• Crear estructura DLL (libre


dependiendo de la aplicación)
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Crear un proyecto independiente (libre dependiendo de la
necesidad)

• Lo siguiente será crear un proyecto independiente, pero en el que


necesitaremos utilizar la DLL que hemos creado. En este caso un proyecto
básico del tipo Windows Forms, o bien un proyecto de consola
TÓPICOS AVANZADOS DE PROGRAMACIÓN

Referenciar nuestra Dll (registrar)

• Para poder utilizar nuestra Dll, es preciso


referenciarla, por lo que iremos a
Referencias y añadiremos una nueva
Referencia (que no será System, ni Com), si
no que iremos a buscarla mediante el
browser.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Bibliografía

• Patrick LeBlanc. 2015. Microsoft Visual C# 2013 Step by Step. EE. UU. Octal
Publishing, Inc. ISBN: 978-0-7356-8183-5.

También podría gustarte