Hola estoy teniendo un problema con un codigo en C cuando utilizo un
programa para imprimir comprobantes fiscal en una impresora HASAR y con
un windows 7 de 64bits para ello uso la dll winfis32.dll. Hasta donde
puse analizar la colgada se produce en:
HB_FUNC( MANDAPAQUETE )
{
int nHandler = hb_parni( 1 );
int result = -2000;
LPTSTR pMensaje = hb_parc( 2 );
char buff[256];
HINSTANCE hInst;
puntMANDAPAQ lpAddr;
hInst=GetModuleHandle("WinFis32.dll");
if(hInst==NULL)
{
hInst=HB_LoadDll("WinFis32.dll");
}
lpAddr=(puntMANDAPAQ)GetProcAddress(hInst,"MandaPaqueteFiscal ");
if(lpAddr==NULL)
{
lpAddr=(puntMANDAPAQ)GetProcAddress(hInst,buff);
}
if (lpAddr)
{
result = (int)(lpAddr)(nHandler,pMensaje);
}
hb_retni(result);
}
Ya se q no es un problema de Xailer, pero alguien tuvo un problema
similar y me podria orientar. Gracias.
Saludos
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Problemas con un dll en windows 7 de 64bits
Problemas con un dll en windows 7 de 64bits
Christian,
> Hola estoy teniendo un problema con un codigo en C cuando utilizo un
> programa para imprimir comprobantes fiscal en una impresora HASAR y
> con un windows 7 de 64bits para ello uso la dll winfis32.dll. Hasta
> donde puse analizar la colgada se produce en:
>
> HB_FUNC( MANDAPAQUETE )
> {
> int nHandler = hb_parni( 1 );
> int result = -2000;
> LPTSTR pMensaje = hb_parc( 2 );
> char buff[256];
> HINSTANCE hInst;
> puntMANDAPAQ lpAddr;
>
> hInst=GetModuleHandle("WinFis32.dll");
> if(hInst==NULL)
> {
> hInst=HB_LoadDll("WinFis32.dll");
> }
> lpAddr=(puntMANDAPAQ)GetProcAddress(hInst,"MandaPaqueteFiscal ");
> if(lpAddr==NULL)
> {
> lpAddr=(puntMANDAPAQ)GetProcAddress(hInst,buff);
> }
> if (lpAddr)
> {
> result = (int)(lpAddr)(nHandler,pMensaje);
> }
> hb_retni(result);
> }
>
> Ya se q no es un problema de Xailer, pero alguien tuvo un problema
> similar y me podria orientar. Gracias.
Aparentemente, la rutina está bien. Sólo hay un detalle con la carga de
la dll, que estás usando hb_loadDll() y sería mejor usar la función del
API de widows LoadLibrary() directamente. Por otro lado, parece que no
se descarga nunca, pero eso no provoca ningún problema en esta rutina,
ya que las sucesivas llamadas ya no la abren de nuevo, y windows se
encargará de cerrarla cuando salgas del programa.
Por lo demás, es posible que el problema esté en la propia DLL, que no
esté preparada para 64 bits o que tenga algún problema específico.
Deberías contactar con el fabricante para ver si tiene una versión más
reciente y que te confirme si funciona o no en 64 bits.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
> Hola estoy teniendo un problema con un codigo en C cuando utilizo un
> programa para imprimir comprobantes fiscal en una impresora HASAR y
> con un windows 7 de 64bits para ello uso la dll winfis32.dll. Hasta
> donde puse analizar la colgada se produce en:
>
> HB_FUNC( MANDAPAQUETE )
> {
> int nHandler = hb_parni( 1 );
> int result = -2000;
> LPTSTR pMensaje = hb_parc( 2 );
> char buff[256];
> HINSTANCE hInst;
> puntMANDAPAQ lpAddr;
>
> hInst=GetModuleHandle("WinFis32.dll");
> if(hInst==NULL)
> {
> hInst=HB_LoadDll("WinFis32.dll");
> }
> lpAddr=(puntMANDAPAQ)GetProcAddress(hInst,"MandaPaqueteFiscal ");
> if(lpAddr==NULL)
> {
> lpAddr=(puntMANDAPAQ)GetProcAddress(hInst,buff);
> }
> if (lpAddr)
> {
> result = (int)(lpAddr)(nHandler,pMensaje);
> }
> hb_retni(result);
> }
>
> Ya se q no es un problema de Xailer, pero alguien tuvo un problema
> similar y me podria orientar. Gracias.
Aparentemente, la rutina está bien. Sólo hay un detalle con la carga de
la dll, que estás usando hb_loadDll() y sería mejor usar la función del
API de widows LoadLibrary() directamente. Por otro lado, parece que no
se descarga nunca, pero eso no provoca ningún problema en esta rutina,
ya que las sucesivas llamadas ya no la abren de nuevo, y windows se
encargará de cerrarla cuando salgas del programa.
Por lo demás, es posible que el problema esté en la propia DLL, que no
esté preparada para 64 bits o que tenga algún problema específico.
Deberías contactar con el fabricante para ver si tiene una versión más
reciente y que te confirme si funciona o no en 64 bits.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
Problemas con un dll en windows 7 de 64bits
José,
Estamos utilizando HB_LibLoad.
LoadLibrary acusa o erro:
Saludos!
Mário Angelini
Attached files
Estamos utilizando HB_LibLoad.
LoadLibrary acusa o erro:
Saludos!
Mário Angelini
Attached files
Problemas con un dll en windows 7 de 64bits
José, desculpa:
Se utilizar DLL de terceiros LoadLibrary funciona correto
com:
hb_dynCall( { "func...", nHandle,DC_CALL_STD})
Se for DLL compilada com Harbour temos que usar:
HB_LibLoad
Saludos.
Mário Angelini
Se utilizar DLL de terceiros LoadLibrary funciona correto
com:
hb_dynCall( { "func...", nHandle,DC_CALL_STD})
Se for DLL compilada com Harbour temos que usar:
HB_LibLoad
Saludos.
Mário Angelini
Problemas con un dll en windows 7 de 64bits
Muchas gracias a todos, ayer consegui una winfis32.dll del año 2008 y la
probe con mi notebook con win8 de 64 bits y me funciona bien igual voy a
probar la modificacion que me dice jose LoadLibrary().
El 10/04/2013 10:15 a.m., www[dot]eMeAsOfT[dot]com escribió:
> José, desculpa:
>
> Se utilizar DLL de terceiros LoadLibrary funciona correto
> com:
> hb_dynCall( { "func...", nHandle,DC_CALL_STD})
> Se for DLL compilada com Harbour temos que usar:
> HB_LibLoad
>
> Saludos.
> Mário Angelini
>
probe con mi notebook con win8 de 64 bits y me funciona bien igual voy a
probar la modificacion que me dice jose LoadLibrary().
El 10/04/2013 10:15 a.m., www[dot]eMeAsOfT[dot]com escribió:
> José, desculpa:
>
> Se utilizar DLL de terceiros LoadLibrary funciona correto
> com:
> hb_dynCall( { "func...", nHandle,DC_CALL_STD})
> Se for DLL compilada com Harbour temos que usar:
> HB_LibLoad
>
> Saludos.
> Mário Angelini
>
Problemas con un dll en windows 7 de 64bits
Muchas Gracias con la dll y la funcion LoadLibrary funciono muy bien.
Saludos
El 12/04/2013 09:02 a.m., Christian R.Assenza escribió:
> Muchas gracias a todos, ayer consegui una winfis32.dll del año 2008 y la
> probe con mi notebook con win8 de 64 bits y me funciona bien igual voy a
> probar la modificacion que me dice jose LoadLibrary().
>
> El 10/04/2013 10:15 a.m., www[dot]eMeAsOfT[dot]com escribió:
>> José, desculpa:
>>
>> Se utilizar DLL de terceiros LoadLibrary funciona correto
>> com:
>> hb_dynCall( { "func...", nHandle,DC_CALL_STD})
>> Se for DLL compilada com Harbour temos que usar:
>> HB_LibLoad
>>
>> Saludos.
>> Mário Angelini
>>
>
Saludos
El 12/04/2013 09:02 a.m., Christian R.Assenza escribió:
> Muchas gracias a todos, ayer consegui una winfis32.dll del año 2008 y la
> probe con mi notebook con win8 de 64 bits y me funciona bien igual voy a
> probar la modificacion que me dice jose LoadLibrary().
>
> El 10/04/2013 10:15 a.m., www[dot]eMeAsOfT[dot]com escribió:
>> José, desculpa:
>>
>> Se utilizar DLL de terceiros LoadLibrary funciona correto
>> com:
>> hb_dynCall( { "func...", nHandle,DC_CALL_STD})
>> Se for DLL compilada com Harbour temos que usar:
>> HB_LibLoad
>>
>> Saludos.
>> Mário Angelini
>>
>