Imprimir
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio: me han enviado las nuevas librerias creadas para ARMV4, pero me sigue dando errores.
Mi funcion:
y esto lo agregué en buildce.bat
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
Code: Select all
echo \lavwin\teve\mobitron\lib\printerNET.lib >> msvc.tmp
echo \lavwin\teve\mobitron\lib\printerAPI.lib >> msvc.tmp
Pedro Gonzalez
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio: supongo que tenia que dejarlo asi:
Pero sigue sin funcionar
El error:
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Pedro,
Si revisas la LIB por dentro, con un editor binario, verás que el nombre de la función es distinto:
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
Antonio, (parece una pesadilla)
Revisé la lib por dentro (printerApi.lib) y lo veo escrito asi:
por lo cual escribí el codigo asi:
agregada la libreria en buildce.bat
al compilar me da este error:
P.D. Tu pudiste compilarlo y no te da errores?
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Pedro,
Tienes clases en C++ dentro de la libreria!:
Vas a tener que instanciar un objeto en C++ y usarlo desde tu aplicación.
Prueba esto:
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();
...
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
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?
Que estoy haciendo mal?
Gracias
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
Gracias
Pedro Gonzalez
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio,
La clase Beep funciona
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++....
La clase Beep funciona
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