Escolar Documentos
Profissional Documentos
Cultura Documentos
Cool C/C++
Programacion en C/C++
Tutoriales Home Programacin C/C++ Creacin y uso de una librera esttica (.h)
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
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:
ACCESO
Usuario
Contrasea
Recordarme
ENTRA R
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
}
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
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
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++
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