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.

Problemas con un dll en windows 7 de 64bits

Foro público de Xailer en español
Responder
Christian
Mensajes: 290
Registrado: Mié Abr 23, 2008 10:18 pm

Problemas con un dll en windows 7 de 64bits

Mensaje por 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.
Saludos
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Problemas con un dll en windows 7 de 64bits

Mensaje por jfgimenez »

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
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
emeasoft
Mensajes: 1088
Registrado: Mié Abr 01, 2009 4:12 pm
Ubicación: emeasoft
Contactar:

Problemas con un dll en windows 7 de 64bits

Mensaje por emeasoft »

José,
Estamos utilizando HB_LibLoad.
LoadLibrary acusa o erro:

Saludos!
Mário Angelini

Attached files
Avatar de Usuario
emeasoft
Mensajes: 1088
Registrado: Mié Abr 01, 2009 4:12 pm
Ubicación: emeasoft
Contactar:

Problemas con un dll en windows 7 de 64bits

Mensaje por emeasoft »

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
Christian
Mensajes: 290
Registrado: Mié Abr 23, 2008 10:18 pm

Problemas con un dll en windows 7 de 64bits

Mensaje por Christian »

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
>
Christian
Mensajes: 290
Registrado: Mié Abr 23, 2008 10:18 pm

Problemas con un dll en windows 7 de 64bits

Mensaje por Christian »

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
>>
>
Responder