Está en la página 1de 4

08/05/13

Inicio Noticias Mi cuenta Lista de Usuarios

Creacin y uso de una librera esttica (.h)


Descargas Tutoriales Cuestionarios FAQ Foros Contacto
Search...

Cool C/C++
Programacion en C/C++
Tutoriales Home Programacin C/C++ Creacin y uso de una librera esttica (.h)

Creacin y uso de una librera esttica (.h)


Escrito por adrianvaca Domingo, 20 de Marzo de 2011 19:03

MEN PRINCIPAL
Inicio Noticias Mi cuenta

Las libreras son un conjunto de funciones que usamos frecuentemente y que por lo general estn agrupadas de acuerdo a su utilidad, por ejemplo la iostream tiene funciones para controlar la entrada y salida de datos. En el presente artculo crearemos una librera esttica (.h) y luego haremos un programa en el cual usemos esta librera, para ello vamos a usar el compilador Dev-C++ 4.9.9.2, si no lo tienes descrgalo primero de la seccin Compiladores de este sitio. Empecemos, como siempre paso a paso: Creacin de la librera

Lista de Usuarios Apuntes Compiladores Cursos Fuentes Tutoriales Cuestionarios

1. Primero que nada crearemos una carpeta de nombre libUtilidades en C:\Dev-Cpp\bin en la cual iremos guardando todos los archivos del proyecto. Abrimos el Dev-C++ y vamos a Archivo -> Nuevo -> Proyecto, seleccionamos Static Library y el nombre del proyecto ser libUtilidades tal como se muestra:

FAQ Foros Enlaces Libro de visitas Contacto

ACCESO
Usuario

Contrasea

Recordarme
ENTRA R

Perdiste tu Usuario/Contrasea? Sin cuenta todava? Registro

COMPARTIR EN

2. Ahora agregamos un nuevo / *u t i l i d a d e s . c p p* / fichero, para esto vamos a Proyecto -> Nuevo Cdigo Fuente, escribimos el siguiente cdigo ah y guardamos el archivo como utilidades.h: # i n c l u d e< s t r i n g > i n ts u m a ( i n ta ,i n tb ) { Cdigo: r e t u r na+b ; / *u t i l i d a d e s . h* / } i n tl s u m a ( i n t a , i n t b ) ; i n t o n g i t u d ( c h a r * c a d e n a ) i n te s _ p a l i n d r o m a ( c h a r* c a d e n a ) ; { i n tl e n=0 ; f o r ( i n ti = 0 ;;i + + ) { i f ( c a d e n a [definimos i]= =' \ 0 ' ) Como podemos ver aqu nicamente el prototipo o molde de las funciones a usar. La primera devolver el resultado b r e a k ; de la suma de 2 enteros y la segunda funcin devolver 1 si la cadena ingresada como parmetro es palindroma 0 si no lo l e n+ + ; } r e t u r nl e n ; Si, anteriormente dije que una librera debe tener funciones agrupadas de acuerdo a su utilidad. En este caso estas funciones } es. no tienen nada que ver una con la otra, pero sirve de ejemplo para comprender ciertas cosas. i n te s _ p a l i n d r o m a ( c h a r* c a d e n a ) { i n t i ; Otra cosa, en este fichero .h nicamente colocamos los prototipos de funciones que queramos hacer pblicas, es decir que c h a ri n v e r t i d a [ 5 0 ] ; queramos que los usuarios vean y por lo tanto puedan usar. / *H a l l al ac a d e n ai n v e r t i d a* / f o r ( i = 0 ;i<l o n g i t u d ( c a d e n a ) ;i + + ) i n v e r t i d a [ i]=c a d e n a [ l o n g i t u d ( c a d e n a ) i 1 ] ; 3. Ahora vamos a crear la implementacin de las funciones anteriores, para esto esto vamos a Proyecto -> Nuevo Cdigo Fuente , escribimos el siguiente cdigo ah ya guardamos / * C o l o c ac a r a c t e rd e f i nd ec d e n a* / el archivo como utilidades.cpp: i n v e r t i d a [i]=' \ 0 ' ; / *R e a l i z al ac o m p a r a c i o n* / Cdigo: i f ( ! s t r c m p ( c a d e n a ,i n v e r t i d a ) ) r e t u r n1 ;/ *e su np a l i n d r o m o* / r e t u r n0 ; / *n oe su np a l i n d r o m o* /

08.05.2013

www.programacionenc.net/index.php?option=com_content&view=article&id=63:creacion-y-uso-de-una-libreria-estatica-h&catid=37:programacion-cc&Itemid=55

1/4

08/05/13
}

Creacin y uso de una librera esttica (.h)

Podemos ver que estn las implementaciones de las 2 funciones anteriores, pero adems est la funcin longitud, como dije, esta funcin ser privada es decir no podr ser llamada directamente por el usuario que use la librera, ya que no inclumos su prototipo en el archivo .h. Esta funcin ser de utilera y la usaremos en forma interna.

4. Bien, ahora vamos a compilar la librera para ello, simplemete presionamos CTRL+F9 y podemos ver en la parte inferior de la ventana que se ha creado el fichero libUtilidades.a:

5. Bien con esto ya hemos creado nuestra librera. Si vamos al Explorador de Windows a nuestra carpeta de trabajo, podemos ver que se han creado algunos ficheros, de todos estos, los que nos son tiles para poder usar la librera son: utilidades.h y libUtilidades.a, los dems ficheros tienen el fuente de la biblioteca. Si queremos distribur nuestra librera slo son necesarios los 2 ficheros anteriores

Uso de la librera

1. En primer lugar copiamos el archivo utilidades.h al directorio include del compilador y el archivo libUtilidades.a al directorio lib

2. Una vez hecha la librera, crearemos ahora un programa de prueba. Primero que nada crearemos una carpeta de nombre pruebaUtilidades en C:\Dev-Cpp\bin en la cual iremos guardando todos los archivos de este proyecto de prueba. Abrimos el Dev-C++ y vamos a Archivo -> Nuevo -> Proyecto, seleccionamos Console Application y el nombre del proyecto ser pruebaUtilidades tal como se muestra:

# i n c l u d e< s t d l i b > # i n c l u d e< i o s t r e a m > Reemplazamos el cdigo inicial por el siguiente: # i n c l u d e< u t i l i d a d e s . h > u s i n gn a m e s p a c es t d ; Cdigo: i n tm a i n ( i n ta r g c ,c h a r* a r g v [ ] ) { i n ta ,b ,r e s u l t a d o ; c h a rc a d e n a [ 5 0 ] ; c o u t< <" I n g r e s ea :" ; c i n> >a ; c o u t< <" I n g r e s eb :" ; c i n> >b ; En este r e punto s u l t a hay d o que =s asegurarse u m a ( a ,b ) ; primero de guardar todos los archivos. Podemos ver que usamos las 2 funciones pblicas c o u t< < " R e s u l t a d o a + b = " < <r e s u l t a d o ; dar un error que creamos, si tratamos de usar la funcin longitud nos c o u t< <" \ n I n g r e s ec a d e n a :" ; c i n> >c a d e n a ; i f ( e s _ p a l i n d r o m a ( c a d e n a ) ) 3. Podemos ver que inclumos nuestra librera utilidades.h y podemos usarla como si se tratar de una biblioteca normal. Pero c o u t< <" E sp a l i n d r o m a \ n " ; hace falta un e l s e paso adicional antes de compilar nuestro programa. Aqu hay 2 opciones, la primera es hacer que nuestra biblioteca est c o u t disponible < <" N Oe slo sp a en l i el n d proyecto r o m a \ n " actual ; o est disponible para cualquier proyecto: s y s t e m ( " P A U S E " ) ;

www.programacionenc.net/index.php?option=com_content&view=article&id=63:creacion-y-uso-de-una-libreria-estatica-h&catid=37:programacion-cc&Itemid=55

2/4

08/05/13

Creacin y uso de una librera esttica (.h)


Permitir que la biblioteca est disponible slo en el proyecto actual Para esto vamos a Proyecto -> Opciones del Proyecto -> Parmetros y en hacemos click en el botn Aadir Biblioteca u Objeto y seleccionamos el archivo libUtilidades.a que anteriormente copiamos en la carpeta lib, tendremos algo como lo que sigue:

Permitir que la biblioteca est disponible para cualquier proyecto Para esto vamos a Herramientas -> Opciones del compilador, en la ficha Compilador activa la casilla Aadir estos comandos a la lnea de comandos del linker y el cuadro que est debajo escribe -lutilidades, puedes fijarte en la siguiente pantalla:

4. Ahora compilamos el programa, para esto presionamos CTRL+F9 y el resultado de la compilacin es:

www.programacionenc.net/index.php?option=com_content&view=article&id=63:creacion-y-uso-de-una-libreria-estatica-h&catid=37:programacion-cc&Itemid=55

3/4

08/05/13

Creacin y uso de una librera esttica (.h)

5. Ahora ejecutamos el programa, para esto presionamos CTRL+F10 y el resultado es:

Otros artculos Creacin y uso de una librera esttica (.h) Funciones recursivas MySQL con Dev-C++ Sockets en Windows Crear una clase cuya implementacin est en otro fichero Plantillas en C++

ESCRIBIR UN COMENTARIO Nombre (requerido) E-mail (requerido) Sitio web

R e stan: 1000 sim bolos

Subscribirse a la notificacin de nuevos comentarios

Refescar

Enviar
J C omments

INICIO

NOTICIAS

MI CUENTA

LISTA DE USUARIOS

DESCARGAS

TUTORIALES

CUESTIONARIOS

FAQ

FOROS

CONTACTO

Copyright Cool C/C++ :: Programacion en C/C++. Todos los derechos reservados. Joomla Templates by JoomlaWeb - Joomla Templates Sponsored by Best of Joomla!

www.programacionenc.net/index.php?option=com_content&view=article&id=63:creacion-y-uso-de-una-libreria-estatica-h&catid=37:programacion-cc&Itemid=55

4/4