Como crear una libreria en "c"

arkan
30 de Diciembre del 2007
porfavor nesesito ayuda es una tarea urgente y necesito saver como se hacen las librerias en c
enviar a mi mail o aqui plz

I need ur help!!!!!!!

Hern?
30 de Diciembre del 2007
Hola. Te paso la receta de como hago mis librerías en Ansi C para DOS.
Por empezar, utilizo Borland C++ 5.0. No se como será en tu compilador, en este se selecciona File->New->Project y en Target Type se selecciona
"Static Library (for .exe) [.lib]". Llamemos al proyecto MiLib.IDE, cuya función será mostrar el típico mensaje "Hola Mundo". En el proyecto creado, agregamos dos nodos usando el botón derecho del mouse sobre la ventana "Project": MiLib.h y MiLib.c.
Este es el código que va en cada uno:

=== Header MiLib.h ===

#ifndef _MILIB_H_
#define _MILIB_H_

#include <stdio.h>

extern __pascal __declspec( dllexport ) void Hola( void );

#endif

=== Módulo MiLib.c ===

#include <MiLib.h>

extern __pascal __declspec( dllexport ) void Hola( void )
{
printf( "nHola Mundo!!!" );
}

Nota: Antes de compilarlo, desde el menú Options se selecciona Project y en include se agrega la ruta del proyecto para que el compilador encuentre
a MiLib.h.

Luego creamos un nuevo proyecto llamado Llamada.ide, el cual llamará a la función Hola() de nuestra librería. El proyecto es de tipo DOS standard, y lo creamos en el mismo directorio que la librearía. Desde la ventana "Project" se hace un click con el botón derecho y seleccionando "Add node" se agrega nuestra librería. El código que llama a la librería es:

=== Módulo Llamada.c ===

#include <milib.h>

void main( void )
{
printf( "nCuando Llamada.c llama a Hola() obtiene:" );
Hola();
printf( "nFin de Llamada.c" );
}

Antes de compilarlo, tambíen hay que definir la ruta donde se encuentra el header de la librería (la misma que nuestro proyecto) y también agregamos la ruta en Library para que encuentra al .LIB.

Te recomiendo que mires en la ayuda de tu compilador el uso de las convenciones de llamadas (__pascal para el punto de entrada a las funciones y __declspec para importarlas).

Espero que esto te sirva. Saludos.
Hernán.

Hern?
30 de Diciembre del 2007
Ops... Casi me olvido. Quienes quieran crear librerías para Windows en lugar de DOS, tan solo deben crear el proyecto como Dynamic Library en lugar de Static Library, y reemplazar __pascal por "C".

Una cosa más: apoyo a todos los que contestaron sobre como crear un archivo .H, pero tengan en cuenta que eso es un header file (algo que contiene definiciones), no una librería.
Una librería es un archivo que contiene código ejecutable, el cual está empaquetado (se las denomina wrappers).
Saludos. Hernán.

maxs riveros huanay
30 de Diciembre del 2007
para crear una libreria en c++ se crea dos archivos una con extencion(milib.h) y otro con extencion(milib.cpp);en el

Hern?
30 de Diciembre del 2007
Ops... Casi me olvido. Quienes quieran crear librerías para Windows en lugar de DOS, tan solo deben crear el proyecto como Dynamic Library en lugar de Static Library, y reemplazar __pascal por "C".

Una cosa más: apoyo a todos los que contestaron sobre como crear un archivo .H, pero tengan en cuenta que eso es un header file (algo que contiene definiciones), no una librería.
Una librería es un archivo que contiene código ejecutado, el cual está empaquetado (se las denomina wrappers).
Saludos. Hernán.

Hern?
30 de Diciembre del 2007
Ops... Casi me olvido. Quienes quieran crear librerías para Windows en lugar de DOS, tan solo deben crear el proyecto como Dynamic Library en lugar de Static Library, y reemplazar __pascal por "C".

Apoyo a todos los que contestaron sobre como crear un archivo .H, pero tengan en cuenta que eso es un header file (algo que contiene definiciones), no una librería.
Una librería es un archivo que contiene código ejecutado, el cual está empaquetado (se las denomina wrappers).
Saludos. Hernán.

angelucha84
30 de Diciembre del 2007
Mira hacer las librerias es bien sencillo solamente no pongas el void main() y hazlo como si solo fueran funcionas lo guardas como .h en la carpeta de include y lixto lo mandas llamar y lo pones igual k la stdio.h




Hoy por ti mañana por mi

Hector Vergara
30 de Diciembre del 2007
Debes crear una o mas clases con sus atributos y propiedades y guardarlas como: "nombre_archivo.h"
asi tendras tu libreria,la llamas igual que stdio.h u otra que quiereas utilizar. Tambien lo puedes hacer guardando en vez de una clase un registro.

Pablo Mercader Alc?ara
30 de Diciembre del 2007
agradesco la ayuda de "webjose" como de las demas personas pero necesito algo un poquito mas concreto porque la documentacion de mi compilador "turbo c" es muy mala de usar y tambien tengo entndido que algunos de los "Headers files" hacen referencia a fichros "obj". como funciona eso ??
donde puedo encotrar informacion mas concreta??.
Mil gracias!!!

PINTO
30 de Diciembre del 2007
Saludos a todos, solo quiero decir una cosa, no se llaman librerias (aunque todos las llamemos asi incluido yo), se llaman bibliotecas, puesto que vienen del ingles Library y si vais a un diccionarios vereis que equivale a bibliotecas.
Los .h no son librerias, las librerias son .dll (en windows) o .so (en linux) y que cuando haces una libreria y la compilas te genera un .h y un .lib, el .h te viene las definiciones para utilizar las "librerias" y el .lib te sirve para que el compilador enlace con el codigo de la "libreria", esto es en caso de librerias estaticas.
En caso de las liberias dinámicas en COM el .h es una wrapper class(clase emboltorio) que se encargará de hacer las llamadas (Invoke) necesarias para comunicarse con la DLL correspondiente, sino seria demasiado engorroso.
Espero que esto te sirva para algo, aunque yo siempre recomiendo que antes de hacer nada en C hay que estudiarlo un minimo, por que sino todo lo que te puedan contar de tu pregunta cae en un saco roto.

Juli?Cate
30 de Diciembre del 2007
Oye PINTO que me pareció muy buena tu explicación..

mi correo [email protected] para compartir recursos

jessica
30 de Diciembre del 2007
DEFINICION Y CREACION DE PAQUETES/LIBRERIA

yolanda
30 de Diciembre del 2007
definicion y creacion de paquetes/libreria

Astharoth
30 de Diciembre del 2007
Aplicate la misma respuesta que le he dado a nabuco en otro post en este foro:

Depende del entorno donde trabajes y el compilador que uses.

Cada compilador suele llevar una (o varias) opciones para indicar que el resultado sera una libreria estatica (.lib o o similar) o bien una libreria dinamica (.so .dll) ...

Asi que depende mucho de lo que uses.. lee la documentacion de tu compilador, esta para algo.

Saludos, Astharoth.

carlos canto
30 de Diciembre del 2007
quiero aprender a hacer liberias en C

Temo
30 de Diciembre del 2007
pues mira lo que necesitas es crear el programa primero y cehcar que no tenga errores¡¡ ya que este esho nada mas necesitas volverloa gurardadr pero con la extension .h
saves as nueva.h

mmm..
la copias a donde esten las librerias principales del compilador que andes usando y se utiliza como cualquier otra libreria

#include <stdio.h>
#include "nueva.h"
main()
...
...
...
nueva( 9
...
..

espero que te sirva...
Atte.
TEMO

suguey barradas soto
30 de Diciembre del 2007
mandame como crear una li breria plis

alberto
30 de Diciembre del 2007
COJIENDO

REFUSED
30 de Diciembre del 2007
Es posible compilar librerias en DLL's??????????


Gracias de antemano

EDITH COZATL MICHIMANI
30 de Diciembre del 2007
COMO SE CREA UN PROGRAMA PARA QUE SE VUELVA EN UNA LIBRERIA EN C


chuidiang
30 de Diciembre del 2007
Echa un ojo en mi pagina www.geocities.com/chuidiang que se explica el tema.
Es para linux. Para windows los conecptos y forma de hacelo es exactamente igual, unicamente cambia el compilado.
Se bueno.

jamie jacqueline Bragg
30 de Diciembre del 2007
que libreria necesitas?

jackie
30 de Diciembre del 2007
necesito ayuda, quien seria tan amable de decirme, cual es la libreria de la funcion Swap

jackie
30 de Diciembre del 2007
que nadie piensa ayudarme, es para ahora no para mañana!!!, porfa, ayudenme...