[Lazarus-es] Libreria C para Impresora Fiscal Hasar

Sergio Pedraza spedraza69 en hotmail.com
Vie Sep 7 18:05:08 CEST 2012


Muchachos, como estan todos les comento que de tanto intentar logre hacer
funcionar la librería para las impresoras hasar, les agradezco a cada uno
que me oriento en la resolución del problema, al final logre interpretar
cuan era el problema

Tenia que recompilar todo de nuevo  con gcc y empaquetar con el comando ar
para lograr hacer funcionar las librerias en Linux

Logre armar dos librerías libfiscallx.a ( que al compilar el projecto no me
da errores ) y libfislib.a (  en esta librería al compilar el projecto me
dice lo siguiente :

 

/usr/bin/ld: warning: link.res contains output sections; did you forget -T?

ImpresoraFiscal_Hasar.o: In function `FPFIN':

/media/KINGSTON/flazarus/ImpresoraFiscal_Hasar.pas:(.text+0x1): undefined
reference to `OpenCommfiscal'

./libc.a(strtoll.o): In function `__strtoll_internal':

/usr/src/bs/BUILD/glibc-2.1/stdlib/strtol.c:342: undefined reference to
`__udivdi3'

/usr/src/bs/BUILD/glibc-2.1/stdlib/strtol.c:343: undefined reference to
`__umoddi3'

./libc.a(strtoull.o): In function `__strtoull_internal':

/usr/src/bs/BUILD/glibc-2.1/stdlib/strtol.c:342: undefined reference to
`__udivdi3'

/usr/src/bs/BUILD/glibc-2.1/stdlib/strtol.c:343: undefined reference to
`__umoddi3'

Fiscal.lpr(22,1) Error: Error while linking

Fiscal.lpr(22,1) Fatal: There were 1 errors compiling module, stopping

 

Si alguien tiene una idea de como solucionarlo, estaré agradecido ( ya
intente agregar el objeto los stdlib.o  strtol.c y no es la solucion)

Esta librería es la original, la que funciona (libfiscallx.a) utiliza estas
funciones 

 

{$IFDEF UNIX}

{$LINKLIB libfiscallx.a}

function ConectaImpresoraFiscal(Portname: PChar): Integer; cdecl; external;

function DesconectaImpresoraFiscal(PortDescriptor:Integer): Integer; cdecl;
external;

function ImprimeLineaFiscal(Command:Pchar;timeout:Integer;AnswerBuffer:
pChar;handler:integer): Integer; cdecl; external;

{$ENDIF}

 

En cambio 

libfislib.a

 

{$linklib libfislibv2.a}

function OpenCommfiscal(Portname: Pchar): Integer; cdecl; external;

function InitFiscal(Handler: integer): Integer; cdecl;external;

function MandaPaqueteFiscal (PortDescriptor: integer; Command: PChar;
FiscalStatus: pShort; PrinterStatus: pShort;AnswerBuffer: pChar): Integer;
cdecl;external;

function CloseCommFiscal (PortDescriptor:Integer): Integer; cdecl;external;

{$ENDIF}

Que son las mismas que la librería para Windows.

 

Pasando a otra cosa y lo más importante ahora, es que no puede ejecutar el
programa en Linux 

Me da el siguiente error

 

La aplicación lanzada "/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e
/usr/lib/lazarus/0.9.30//tools/runwait.sh /media/KINGSTON/flazarus/Fiscal"

no existe o no es ejecutable.

 

Mire Ejecutar -> Parámetros de ejecución -> Local

 

Ya intente darle permiso de ejecución en ubuntu y no toma los cambios que
realizo como root

 

Si alguien sabe como hacerlo estaré agradecido, ya que ejecuto el programa
con wine y no es lo que realmente quiero hacer

Ya que la idea es migrar todos mis programas que tengo en VFP para LAZARUS
que me parece superior a VFP y además es multiplataforma.

 

Saludos y desde ya muchas gracias 

 

Y como dije en su momento este es el link del proyecto (con un ejemplo
simple para imprimir un ticket factura, un reporte X y un reporte Z) y las
librarías para alguien que le haga falta y no padezca todo lo que tuve que
pasar para hacerlo funcionar 

 

http://www.4shared.com/rar/46Q3tFBz/FiscalHasar.html?refurl=d1url

 

 

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20120907/3f6c2d1e/attachment-0002.html>


More information about the Lazarus-es mailing list