Imprimir
- Antonio Linares
- Site Admin
- Posts: 42565
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 82 times
- 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 | Expand
teve.c Creating library teve.lib and object teve.expteve.obj : error LNK2019: unresolved external symbol "int __cdecl Prt_TestPrint(void)" (?Prt_TestPrint@@YAHXZ) referenced in function "void __cdecl HB_FUN_PRT_TESTPRINT(void)" (?HB_FUN_PRT_TESTPRINT@@YAXXZ)teve.exe : fatal error LNK1120: 1 unresolved externals
Mi funcion:
Code: Select all | Expand
#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 | Expand
echo \lavwin\teve\mobitron\lib\printerNET.lib >> msvc.tmpecho \lavwin\teve\mobitron\lib\printerAPI.lib >> msvc.tmp
Pedro Gonzalez
- Antonio Linares
- Site Admin
- Posts: 42565
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 82 times
- Contact:
Antonio: supongo que tenia que dejarlo asi:
Pero sigue sin funcionar
El error:
Pero sigue sin funcionar
Code: Select all | Expand
#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 | Expand
teve.obj : error LNK2019: unresolved external symbol Prt_TestPrint referenced in function "void __cdecl HB_FUN_PRT_TESTPRINT(void)" (?HB_FUN_PRT_TESTPRINT@@YAXXZ)
Pedro Gonzalez
- Antonio Linares
- Site Admin
- Posts: 42565
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 82 times
- 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 | Expand
#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 | Expand
#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: 42565
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 82 times
- 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 | Expand
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 | Expand
#pragma BEGINDUMP#include "hbapi.h"#include "Printer.h" // de los ficheros que te han enviadoHB_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 | Expand
#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
- Antonio Linares
- Site Admin
- Posts: 42565
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 82 times
- Contact:
- Antonio Linares
- Site Admin
- Posts: 42565
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 82 times
- 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 | Expand
***************STATIC FUNCTION ProvaStampa()***************LOCAL iFOR i := 1 TO 100 Beep_on( 200 + i * 100, 100 )NEXTRETURN 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