FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Creando Estructuras TypeDef Struct como en C
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Creando Estructuras TypeDef Struct como en C
Posted: Wed Jun 28, 2017 02:09 PM

oFiscal:ImprimirTextoFiscal( AtributosDeTexto:cBuffer, "HOLA" )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 74
Joined: Mon Jun 10, 2013 01:21 PM
Re: Creando Estructuras TypeDef Struct como en C
Posted: Wed Jun 28, 2017 03:06 PM

Hola Antonio,
Function Main()
Local Atributosdetexto

STRUCT AtributosDeTexto
MEMBER Centrado AS BOOL INIT .F.
MEMBER DobleAncho AS BOOL INIT .F.
MEMBER BorradoTexto AS BOOL INIT .F.
MEMBER Negrita AS BOOL INIT .T.
ENDSTRUCT

xbrowse(AtributosDeTexto) ----->muesta bien la estructura con sus miembros y los valor en .T. y .F.
msginfo( AtributosDeTexto:cBuffer) -----> esto muestra " " vacio, es correcto?

oFiscal:ImprimirTextoFiscal( AtributosDeTexto:cBuffer, "HOLA" ) ----> argument error

Gracias Antonio,

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Creando Estructuras TypeDef Struct como en C
Posted: Thu Jun 29, 2017 03:40 AM

Prueba asi:

local cBuffer := AtributosDeTexto:cBuffer

oFiscal:ImprimirTextoFiscal( @cBuffer, "HOLA" )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 74
Joined: Mon Jun 10, 2013 01:21 PM
Re: Creando Estructuras TypeDef Struct como en C
Posted: Fri Jun 30, 2017 03:03 PM

Buen dia Antonio,
Realice la prueba que me indicaste sin exito, este es el resultado,

STRUCT AtributosDeTexto
MEMBER Centrado AS BOOL INIT .F.
MEMBER DobleAncho AS BOOL INIT .F.
MEMBER BorradoTexto AS BOOL INIT .F.
MEMBER Negrita AS BOOL INIT .T.
ENDSTRUCT

memstat(atributosdetexto:cbuffer)
Resultado:


Memory(0) ............. 2097151
Memory(1) ............. 2097151
Memory(2) ............. 2097151
Memory(3) ............. 2005532
Memory(4) ............. 0
Memory(5) ............. 0
Memory(6) ............. 0


cBuffer = atributosdetexto:cbuffer
oFiscal:ImprimirTextoFiscal( @cBuffer, "HOLA" ) ------> argument error

Saludos Mariano

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Creando Estructuras TypeDef Struct como en C
Posted: Fri Jun 30, 2017 05:09 PM

Prueba a hacer esto:

pMem = hb_xgrab( 32 )

oFiscal:ImprimirTextoFiscal( pMem, "HOLA" )

y comprueba si sigue dando el argument error

pragma BEGINDUMP

include <hbapi.h>

HB_FUNC( HB_XGRAB )
{
hb_retnll( ( HB_LONGLONG ) hb_xgrab( hb_parnl( 1 ) ) );
}

pragma ENDDUMP

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 74
Joined: Mon Jun 10, 2013 01:21 PM
Re: Creando Estructuras TypeDef Struct como en C
Posted: Sun Jul 02, 2017 10:26 PM

Hola Antonio,
Este es el resultado de la ejecuci贸n del c贸digo que me enviaste,

Compiler version: Harbour 3.2.0dev (r1703231115)
FiveWin Version: FWH 16.02
Windows version: 6.2, Build 9200

Time from start: 0 hours 0 mins 2 secs
Error occurred at: 02/07/17, 19:21:53
Error description: (DOS Error -2147352571) WINOLE/1007 Argument error: IMPRIMIRTEXTOFISCAL
Args:
[ 1] = N 13958972
[ 2] = C HOLA

Stack Calls

Called from: => TOLEAUTO:IMPRIMIRTEXTOFISCAL( 0 )
Called from: hasarg2.prg => MAIN( 98 )

Windows total applications running: 4
1 ,
2 , C:\WINDOWS\SYSTEM32\MSVBVM60.DLL
3 , C:\WINFAR64\hasarg2.exe
4 GDI+ Window, C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.14393.953_none_baad48403594ab3

Variables in use

Procedure Type Value
==========================
TOLEAUTO:IMPRIMIRTEXTOFISCAL
Param 1: O Class: ERROR
MAIN
Param 1: N 13958972
Param 2: C "HOLA"
Local 1: U
Local 2: U

Linked RDDs

DBF
DBFFPT
DBFBLOB
DBFNTX

DataBases in use

Classes in use:

 1 ERROR
 2 HBCLASS
 3 HBOBJECT
 4 TSTRUCT
 5 WIN_OLEAUTO
 6 TOLEAUTO
 7 TREG32

Muchas gracias Mariano

Posts: 74
Joined: Mon Jun 10, 2013 01:21 PM
Re: Creando Estructuras TypeDef Struct como en C
Posted: Tue Jul 11, 2017 10:46 PM

Estimados,
Por ahora voy a utilizar la DLL que provee HASAR que funciona, por si alguien necesita salir del apuro, es un poco mas artesanal ya que trabaja directamente con tramas en modo empaquetado. El OCX es mas practico pero por el momento hay varias cosas que no funcionaron.

un ejemplo usando la DLL

-------------------------------------------------------------
Function AbrirPuerto(nPort)
-------------------------------------------------------------
local lResp:=.T.

nHandler := CallDll32( "OpenComFiscal" , "WINFIS32.DLL" , nPort , 1 )

If nHandler &gt;= 0 
   msgalert(&quot;Puerto de impresora OK &quot;)
   nError := CallDll32( &quot;InitFiscal&quot;    , &quot;WINFIS32.DLL&quot; , nHandler )
   If nError = 0
     lResp :=  .T.
   Else 
     msginfo(&quot; La impresora no se puede Inicializar&quot; + cValtoChar(nError))   
      lResp := .F.  
   Endif

Else

Msinfo( nHandler )

lResp := .F.

Endif

RETU ( lResp )

-------------------------------------------------------------
FUNCTION CierreFiscal(cTpo)
-------------------------------------------------------------
Local s ,lResp:=.T.
local cFecha := DtoC( Date() )

s:=if( cTpo='Z',"9" + SE + "Z","9" + SE + "X")

If MsgYesno( '驴 Realizar Cierre '+cTpo+' ? ' + ChR(10)+ ;
' Fecha : ' + cFecha , " Mensaje de atenci贸n ")
nError := CallDll32 ( "MandaPaqueteFiscal" , "WINFIS32.DLL" , nHandler , s )
If nError == 0
msginfo( "Se Realizo el cierre "+cTpo, "Informacion" )
Else
lResp:=.F.
msgalert( "Error al efectuar el cierre "+cTpo , " ERROR" )
endif
Endif
RETU lResp

Gracias por la colaboraci贸n, y espero pueda sacarlos del paso.
Atte Mariano

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Creando Estructuras TypeDef Struct como en C
Posted: Wed Jul 12, 2017 05:49 AM

muy bien :-)

gracias por compartirlo

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion