[Lazarus-es] Problema con libreria c

Maikel Enrique Pernía Matos reprepoli2mz en infomed.sld.cu
Jue Ago 16 22:47:48 CEST 2012


Maxi, creo que no es tan simple como lo haces ver, pues algo que  
caracteriza los códigos escritos en C y C++ es el empleo de punteros  
que es más que conversión entre tipos de datos y esto si puede ser una  
gran barrera para reescribir estos ficheros cabeceras a object pascal  
pues aquí es más moderado el uso de estos.

El jue, 16-08-2012 a las 17:02 -0300, Maxi escribió:
El día 16 de agosto de 2012 16:57, Maikel Enrique Pernía Matos
> <reprepoli2mz en infomed.sld.cu> escribió:
> > Con esto tengo mis dudas, he utilizado poco librerías de terceros o propias
> > y en app que he desarrollado en object pascal (estas han sido  
> desde delphi);
> > pero recuerdo que cada librería se aconmpañaba con un fichero *.pas que
> > declaraba las funciones que dicha librería exportaba y entonces era que
> > podía vincularlas con mi app esto desde la clausula "use" de mi fichero
> > *.pas. En C y C++ lo ha realizado con más frecuencia fundamentalmente desde
> > GNU/Linux y de manera similar cada librería se acompaña con un fichero de
> > cabeceras *.h donde se declaran las mismas funciones que se exportan desde
> > la librería ya sea dinámica *.so o estática *.a y se vinculan a mi app así:
> > #include <nombre_libreria.h> o  #include "nombre_libreria.h".
> > Pregunto:
> > ¿Qué habría que hacer, crear la librería y llevar los *.h a *.pas  
> o utilizar
> > la librería y los *.h?
> >
> > El jue, 16-08-2012 a las 16:37 -0300, Maxi escribió:
> >
> > 2012/8/16 Pedraza Sergio <spedraza69 en hotmail.com>:
> >>
> >> > Te paso los archivos make tanto de windows como Linux
> >> >
> >> > make_win32
> >> > --------------------------------------------------
> >> > INCLUDE=-I.
> >> > CXXFLAGS=$(INCLUDE) -DP_WIN32 -DP_WIN32_GCC
> >> > FISCAL_LIB=clasefiscal.a
> >> > all: $(FISCAL_LIB) clasefiscal
> >> >
> >> > #depend:
> >> > #    makedepend $(INCLUDE) *.cpp
> >> >
> >> > clasefiscal_objs =  debug.o Excepcion.o ImpresorFiscal16Bits.o \
> >> >         ImpresorFiscal8Bits.o ImpresorFiscal.o Mutex.o P262_100.o \
> >> >         P272_100.o P320_100.o P321_100.o P322_100.o P322_201.o P322.o \
> >> >         P330_100.o P330_201.o P330_202.o P330.o P425_100.o P425_201.o \
> >> >         P425.o P435_100.o P435_101.o P435.o P614_100.o P615_100.o \
> >> >         P715_100.o P715_201.o P715_302.o P715_403.o P715.o P950_100.o \
> >> >         P951_100.o PJ20_100.o PPL8_100.o PPL8_201.o PPL8.o PPL9_100.o \
> >> >         PPR4_100.o PPR5_100.o PPR5_201.o PPR5.o PPL23_100.o PPL23_101.o
> >> > \
> >> >         PPL23.o Protocolo.o PuertoSerie.o Socket.o ssplit.o Chars.o \
> >> >         Select.o
> >> > $(FISCAL_LIB): $(clasefiscal_objs)
> >> >    ar rvu $(FISCAL_LIB) $(clasefiscal_objs)
> >> >    ranlib $(FISCAL_LIB)
> >> >
> >> > clasefiscal: ClaseFiscal.o $(FISCAL_LIB)
> >> >    $(CXX) ClaseFiscal.o $(FISCAL_LIB) -o clasefiscal -lwsock32
> >> > --------------------------------------------------
> >> >
> >> > makefile_linux
> >> > ---------------------------------------------------
> >> > INCLUDE=-I.
> >> > CXXFLAGS=$(INCLUDE) -DP_LINUX
> >> > FISCAL_LIB=clasefiscal.a
> >> > all: $(FISCAL_LIB) clasefiscal
> >> >
> >> > #depend:
> >> > # makedepend $(INCLUDE) *.cpp
> >> >
> >> > clasefiscal_objs =  debug.o Excepcion.o ImpresorFiscal16Bits.o \
> >> >         ImpresorFiscal8Bits.o ImpresorFiscal.o Mutex.o P262_100.o \
> >> >         P272_100.o P320_100.o P321_100.o P322_100.o P322_201.o P322.o \
> >> >         P330_100.o P330_201.o P330_202.o P330.o P425_100.o P425_201.o \
> >> >         P425.o P435_100.o P435_101.o P435.o P614_100.o P615_100.o \
> >> >         P715_100.o P715_201.o P715_302.o P715_403.o P715.o P950_100.o \
> >> >         P951_100.o PJ20_100.o PPL8_100.o PPL8_201.o PPL8.o PPL9_100.o \
> >> >         PPR4_100.o PPR5_100.o PPR5_201.o PPR5.o PPL23_100.o PPL23_101.o
> >> > \
> >> >         PPL23.o Protocolo.o PuertoSerie.o Socket.o ssplit.o Chars.o \
> >> >         Select.o
> >> > $(FISCAL_LIB): $(clasefiscal_objs)
> >> > ar rvu $(FISCAL_LIB) $(clasefiscal_objs)
> >> > ranlib $(FISCAL_LIB)
> >> >
> >> > clasefiscal: ClaseFiscal.o $(FISCAL_LIB)
> >> > $(CXX) ClaseFiscal.o $(FISCAL_LIB) -o clasefiscal -lpthread
> >> >
> >> >  
> --------------------------------------------------------------------------
> >> >
> >> > La pregunta es como hago para compilar y transformar el codigo en c en
> >> > una
> >> > libreria para windows o Linux ?
> >> >
> >> > Muchas Gracias
> >> > Sergio Pedraza
> >> >
> >> >
> >> > --------------------------------------------------
> >> > From: "Maxi" <maximiliano.duarte en gmail.com>
> >> > Sent: Monday, August 13, 2012 11:54 AM
> >> > To: "Spanish version of Lazarus List"
> >> > <lazarus-es en lists.lazarus.freepascal.org>
> >> > Subject: Re: [Lazarus-es] Problema con libreria c
> >> >
> >> >> Y el codigo?
> >> >>
> >> >> --
> >> >> El que pregunta aprende, y el que contesta aprende a responder.
> >> >>
> >> >> No a la obsolecencia programada:
> >> >>
> >> >>
> >> >>  
> http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html
> >> >>
> >> >> Linux User #495070
> >> >> http://domonetic.com/blog
> >> >>
> >> >> _______________________________________________
> >> >> Lazarus-es mailing list
> >> >> Lazarus-es en lists.lazarus.freepascal.org
> >> >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
> >> >>
> >> >
> >> > _______________________________________________
> >> > Lazarus-es mailing list
> >> > Lazarus-es en lists.lazarus.freepascal.org
> >> > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
> >>
> >> con make desde linux te crea el archivo.o que el la libreria, si tenes
> >> todos los fuentes no necesitas transformarlo a pascal sino generar la
> >> dll y usarla con las declaraciones en tu fuente y listo. Creoque podes
> >> usar make en windows.
> >>
> >> --
> >> El que pregunta aprende, y el que contesta aprende a responder.
> >>
> >> No a la obsolecencia programada:
> >>
> >>  
> http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html
> >>
> >> Linux User #495070
> >> http://domonetic.com/blog
> >>
> >> _______________________________________________
> >> Lazarus-es mailing list
> >> Lazarus-es en lists.lazarus.freepascal.org
> >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
> >>
> >
> > ----------------------------------------------------------------
> > This message was sent using IMP, the Internet Messaging Program.
> >
> >
> > --
> >
> > Este mensaje le ha llegado mediante el servicio de correo electronico que
> > ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema
> > Nacional de Salud. La persona que envia este correo asume el compromiso de
> > usar el servicio a tales fines y cumplir con las regulaciones establecidas
> >
> > Infomed: http://www.sld.cu/
> >
> >
> > _______________________________________________
> > Lazarus-es mailing list
> > Lazarus-es en lists.lazarus.freepascal.org
> > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
> tenes que pasar los .h a .pas manteniendolos tipos de datos iguales,
> si usa un int en C, integer en pascal, los struct a record, esto es lo
> que hizo Delphi para usar las apis de windows.
>
>
>

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


--

Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas

Infomed: http://www.sld.cu/




More information about the Lazarus-es mailing list