Problema CALLDLL (Solucionado)

Problema CALLDLL (Solucionado)

Postby jmartial » Sat Sep 06, 2014 7:11 pm

Hola,

He comprobado que la función CALLDLL() ha cambiado debido a la adaptación a varios compiladores de C y 32/64 bits.

Yo estoy usando BCC 32Bits y Harbour, ¿Que sustitución para que funcione necesitaria una función como esta?

Function LlSetDebug(nOnOff)
Return CallDll(_LlSetDebug,nOnOff)


Un Saludo,
Joaquín Martínez
Last edited by jmartial on Sun Sep 07, 2014 10:32 am, edited 1 time in total.
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Re: Problema CALLDLL

Postby Antonio Linares » Sat Sep 06, 2014 8:13 pm

Joaquin,

De la manera que quieres llamar a CallDll() no funcionara. La usabas así antes ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41338
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Problema CALLDLL

Postby Antonio Linares » Sat Sep 06, 2014 8:13 pm

Joaquin,

De la manera que quieres llamar a CallDll() no funcionara. La usabas así antes ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41338
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Problema CALLDLL

Postby jmartial » Sun Sep 07, 2014 9:55 am

Hola,

Así sí funcionaba, pero veo que puse el ejemplo incompleto.

// Cargo la Dll
hDll := LoadLibrary("CMLL12.DLL")

//Cargo estas variables
_LlSetDebug :=GetProcAddress(hDll,"LlSetDebug" ,.t.,VOID,LONG)

//---- Creo funciones de este tipo -----------------------------
Function LlSetDebug(nOnOff)
Return CallDll(_LlSetDebug,nOnOff)
//----------------------------------

// Al cerrar el diálogo libero la dll
FreeLibrary(hDll)

Ahora me da error CALLDLL, al enlazar, como que no existe con ese nombre:

Error: Unresolved external '_HB_FUN_CALLDLL' referenced from LISTLAB6.OBJ

¿Cual es el sustituto a CALLDLL para Harbour 32 bits?

Un Saludo,
Joaquín Martínez
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Re: Problema CALLDLL

Postby jmartial » Sun Sep 07, 2014 10:25 am

Antonio,

Comprobado, te pongo un ejemplo más pequeño y fallacon fwcalldll y con fwcalldll32:

Function LlJobOpen(nLanguaje)
? "Dll informes",hDll
uvalor := fwcalldll( GetProcAddress(hDll,"LlJobOpen" ,.t.,LONG,LONG), nLanguaje )
? "fin fwcalldll"
Return uvalor

Cuando llega a fwcalldll, congela la aplicación. Antes como te decía, ha funcionado perfectamente durante años.


Un Saludo,
Joaquín Martínez
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Re: Problema CALLDLL (Solucionado)

Postby jmartial » Sun Sep 07, 2014 10:35 am

Antonio,

Solucionado. Ha habido cambios de nombres de función y en la ayuda no estaba reflejado.

En ningún lado he visto, cuales son los nuevos comandos según sea 32 o 64 bits. Yo he aplicado estos defines en el prg que las usa,
y parece que funciona bien:

#define CallDll fwcalldll
#define GetProcAddress GetProcAdd

Lo que sigo sin saber es si es correcto o en su lugar sería esto:

#define CallDll fwcalldll32
#define GetProcAddress GetProcAdd32

Un Saludo,
Joaquín Martínez
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Re: Problema CALLDLL (Solucionado)

Postby Antonio Linares » Mon Sep 08, 2014 6:27 am

Joaquín,

En el caso que te ha funcionado bien, como lo has implementado ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41338
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Problema CALLDLL (Solucionado)

Postby jmartial » Mon Sep 08, 2014 8:41 am

Antonio,

SÓLO funciona así:

#define CallDll fwcalldll
#define GetProcAddress GetProcAdd
Un Saludo,
Joaquín Martínez
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Re: Problema CALLDLL (Solucionado)

Postby Antonio Linares » Mon Sep 08, 2014 10:12 am

Joaquín,

Si, así es correcto :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41338
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 13 guests