Publi

  • Enlazado dinámico en C++ (dynamic linking) IV: Permitir plug-ins en nuestra aplicación

    Un ejemplo práctico de uso del enlazado dinámico es la posibilidad de crear plug-ins para nuestros programas. Estos plug-ins nos permitirán aumentar las funcionalidades de nuestro programa sin necesidad de recompilarlo, utilizando el código de añadidos binarios. Para poder «hablar» con los demás binarios, es necesario haber establecido antes unas normas para ese diálogo.

    Intentaré poner un ejemplo más o menos completo, pero sencillo, y se podrá descargar el código fuente al final del artículo (serán bastantes archivos).… Leer artículo completo

  • Enlazado dinámico en C++ (dynamic linking) III: Carga dinámica de objetos

    Hasta ahora, en varios artículos referentes a este tema: Introducción a dynamic linking, Carga dinámica de bibliotecas, hemos visto como, en lenguaje C, podemos escribir bibliotecas de funciones y, sin necesidad de conocer su código fuente, ejecutar funciones encerradas dentro de esas bibliotecas en nuestros proyectos, así como cargar dicho código al vuelo.

    Pero todo se complica un poco cuando queremos hacer lo mismo con C++, y en concreto, cuando estamos exportando clases completas, ya que de primeras necesitamos una forma de traernos algo parecido a un tipo, el nombre de la clase, y con dlopen() y dlsym(), nos podemos traer sólo una referencia de memoria, por lo que junto con la clase que programemos en C++ tendremos que incluir una función que llame al constructor.… Leer artículo completo

  • Enlazado dinámico en C (dynamic linking) II: Carga dinámica de shared objects

    La semana pasada vimos una introducción y cómo podíamos hacer una carga estática de bibliotecas dinámicas o shared objects.

    Hoy dedicaré el post a la carga dinámica, esto es, no hace falta que el objeto exista para poder compilar el programa principal, y el programa principal, no tiene por qué saber que lo va a utilizar hasta el último momento en que lo esté utilizando. Pueden utilizarse para extender la funcionalidad de nuestra aplicación una vez esté construida, puede que por nosotros, o por otra persona.… Leer artículo completo

  • Enlazado dinámico en C (dynamic linking) I: Introducción

    Algo que nos abre un mundo de posibilidades a la hora de realizar nuestros programas es la forma de enlazar los archivos objeto en nuestro binario definitivo. Ésta puede ser dinámica o estática.

    La forma estática es la que se utiliza desde el primer momento que se empieza a programar: hemos creado varios archivos .c y queremos utilizar funciones de otro archivo dentro del archivo principal, con el objetivo de dividir el código en partes y no trabajar desde el mismo archivo.… Leer artículo completo