Imprimir

User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Antonio: puedo enviarte los .lib a ver si tu los puedes hacer funcionar? porque de repente soy yo que no logra hacerlo funcionar, capaz que me falta hacer algo, no lo se.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Pedro,

Envíamelos en un ZIP, gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

enviado a tu privado.


gracias.
Pedro Gonzalez
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Antonio: me han enviado las nuevas librerias creadas para ARMV4, pero me sigue dando errores.

Code: Select all

teve.c
   Creating library teve.lib and object teve.exp
teve.obj : error LNK2019: unresolved external symbol "int __cdecl Prt_TestPrint(
void)" (?Prt_TestPrint@@YAHXZ) referenced in function "void __cdecl HB_FUN_PRT_T
ESTPRINT(void)" (?HB_FUN_PRT_TESTPRINT@@YAXXZ)
teve.exe : fatal error LNK1120: 1 unresolved externals


Mi funcion:

Code: Select all

#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>
//#include <c:\lavwin\teve\mobitron\inc\printer.h>
#include <c:\lavwin\teve\mobitron\inc\printerNET.h>

int Prt_TestPrint( void );

HB_FUNC( PRT_TESTPRINT )
{
   hb_retnl( Prt_TestPrint() );
}

#pragma ENDDUMP
y esto lo agregué en buildce.bat

Code: Select all

echo \lavwin\teve\mobitron\lib\printerNET.lib >> msvc.tmp
echo \lavwin\teve\mobitron\lib\printerAPI.lib >> msvc.tmp
Pedro Gonzalez
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Pedro,

Haz este cambio:

extern "C" {
int Prt_TestPrint( void );
}

En la nueva versión de FWPPC ya no es preciso, ya que no se compila en modo C++ (flag -TP).
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Antonio: supongo que tenia que dejarlo asi:
Pero sigue sin funcionar

Code: Select all

#pragma BEGINDUMP
 
#include <hbapi.h>
#include <windows.h>
#include <c:\lavwin\teve\mobitron\inc\printer.h>
 
extern "C" {
int Prt_TestPrint( void );
}

HB_FUNC( PRT_TESTPRINT )
{
   hb_retnl( Prt_TestPrint() );
}
 
#pragma ENDDUMP



El error:

Code: Select all

 
teve.obj : error LNK2019: unresolved external symbol Prt_TestPrint referenced in
 function "void __cdecl HB_FUN_PRT_TESTPRINT(void)" (?HB_FUN_PRT_TESTPRINT@@YAXX
Z)

Pedro Gonzalez
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Pedro,

Si revisas la LIB por dentro, con un editor binario, verás que el nombre de la función es distinto:

Code: Select all

#pragma BEGINDUMP
 
#include <hbapi.h>
#include <windows.h>
#include <c:\lavwin\teve\mobitron\inc\printer.h>
 
extern "C" {
int PRT_TestPrint( void );
}

HB_FUNC( PRT_TESTPRINT )
{
   hb_retnl( PRT_TestPrint() );
}
 
#pragma ENDDUMP 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Antonio, (parece una pesadilla)

Revisé la lib por dentro (printerApi.lib) y lo veo escrito asi:
Prt_TestPrint

por lo cual escribí el codigo asi:

Code: Select all

#pragma BEGINDUMP
 
#include <hbapi.h>
#include <windows.h>
#include <c:\lavwin\teve\mobitron\inc\printer.h>
 
extern "C" {
int Prt_TestPrint( void );
}

HB_FUNC( PRT_TESTPRINT )
{
   hb_retnl( Prt_TestPrint() );
}
 
#pragma ENDDUMP

agregada la libreria en buildce.bat


al compilar me da este error:
teve.c
Creating library teve.lib and object teve.exp
teve.obj : error LNK2019: unresolved external symbol Prt_TestPrint referenced in
function "void __cdecl HB_FUN_PRT_TESTPRINT(void)" (?HB_FUN_PRT_TESTPRINT@@YAXX
Z)
teve.exe : fatal error LNK1120: 1 unresolved externals



P.D. Tu pudiste compilarlo y no te da errores?
Pedro Gonzalez
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Pedro,

Tienes clases en C++ dentro de la libreria!:

Code: Select all

class __declspec(dllexport) CPrinter  
{
public:
//	INT Prt_CheckCover(BOOL *blCover);
	INT Prt_CheckHeadTemper(BOOL *blTemper);
	INT Prt_CheckPaper(BOOL *blPaper);
	INT WriteBitmap_BelowStandard(LPCTSTR bmFile);
	INT Prt_BackFeed(int n);
	INT getSerialProperty(DCB *lpDcb);
	INT PrinterDeSelect(HANDLE prt_pHandle);
	INT Prt_PortOpen();
	INT Prt_PortRelease();
	INT Prt_PrintBarcode(char *barData, int height, int width, int barcodeSystem, int codeHRI);
	INT Prt_CheckStatus(PRT_STATUS * status);
	INT Prt_TestPrint();
                ...
Vas a tener que instanciar un objeto en C++ y usarlo desde tu aplicación.

Prueba esto:

Code: Select all

#pragma BEGINDUMP

#include "hbapi.h"
#include "Printer.h"  // de los ficheros que te han enviado

HB_FUNC( PRT_TESTPRINT )
{
   CPrinter * printer = new CPrinter;

   printer->Prt_TestPrint();
}

#pragma ENDDUMP
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Antonio: ahora compila sin errores.

hago la prueba de imprimir y no imprime, supongo que porque tengo que abrir la impresora luego hacer el test y luego cerrarla, lo hago de este modo, pero tampoco funciona, alguna idea?

Code: Select all

#pragma BEGINDUMP

#include "hbapi.h"
#include "windows.h"
#include "c:\lavwin\teve\mobitron\inc\Printer.h"

HB_FUNC( PRT_TESTPRINT )
{
   CPrinter * printer = new CPrinter;

   printer->Prt_Open();
   printer->Prt_TestPrint();
   printer->Prt_Close();
}

#pragma ENDDUMP
Que estoy haciendo mal?

Gracias
Pedro Gonzalez
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Pedro,

Tendrás que revisar la documentación de ese producto y los ejemplos que proporcionan para ver como es la secuencia correcta de llamadas.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Antonio,

la secuencia sería como està escrito en el codigo que te enviè antes. La pregunta es: esta bien escrito lo que puse?, porque por lo que entiendo, las llamadas a open, printest y close son metodos de la clase print, es asi?

gracias
Pedro Gonzalez
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Pedro,

Sí, tu código es correcto.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Antonio,


Gracias


Voy a tratar de entender entonces por cual motivo no funciona, voy a usar el beep que es mas simple para hacer las pruebas.
Pedro Gonzalez
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Antonio,


La clase Beep funciona :D

Code: Select all


***************
STATIC FUNCTION ProvaStampa()
***************
LOCAL i

FOR i := 1 TO 100
  Beep_on( 200 + i * 100, 100 )
NEXT

RETURN NIL
*
** eof ProvaStampa


#pragma BEGINDUMP

#include "hbapi.h"
#include "windows.h"
#include "c:\lavwin\teve\mobitron\inc\Printer.h"  
#include "c:\lavwin\teve\mobitron\inc\Beep.h"  

HB_FUNC( PRT_TESTPRINT )
{
   CPrinter * printer = new CPrinter;

   printer->Prt_Open();
   printer->Prt_TestPrint();
   //printer->Prt_Close();
}


HB_FUNC( BEEP_ON )
{
   CBeep * Beep = new CBeep;

   Beep->Beep_On( hb_parni(1), hb_parni(2));

}

#pragma ENDDUMP 



Ahora voy a tratar de entender por que no funciona la impresora.
Te agradezco muchisimo tu ayuda para resolver mi problema.
Ahora, a aprender un poco de C++....
Pedro Gonzalez
Post Reply