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.

DLLCALL() UNRESOLVED EXTERNAL CON XAILER 2.7.4 (HARBOUR)

Foro de Xailer profesional en español
Responder
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

DLLCALL() UNRESOLVED EXTERNAL CON XAILER 2.7.4 (HARBOUR)

Mensaje por Martin Del Angel »

Hola Buen Dia a Todos:
Estoy compilando con la version 2.7.4 , convirtiendo un proyecto de
Xharbour a Harbour.
ya quedo todo listo , solo me tope con esta función DllCall()
me marca Unresolved external _HB_FUN_HB_DLLCALL
Alguna Idea , me falta algo ?
Saludos...
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

DLLCALL() UNRESOLVED EXTERNAL CON XAILER 2.7.4 (HARBOUR)

Mensaje por jlalin »

Martin,
prueba usando HB_DYNCALL()
Saludos,
José Lalí­n
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

DLLCALL() UNRESOLVED EXTERNAL CON XAILER 2.7.4 (HARBOUR)

Mensaje por Martin Del Angel »

On 12/10/2012 8:17 AM, José Lalí­n wrote:
> Martin,
>
> prueba usando HB_DYNCALL()
>
> Saludos,
> José Lalí­n
>
Ya no me marco error:
Gracias , falta probarla en ejecución.
Una pregunta :
Se que hay alguna documentación, algunos links como estos:
http://www.marinas-gui.org/projects/harbour_manual/
http://harbour-project.sourceforge.net/doc/harbour.html
Pero no viene documentada HB_DYNCALL
se extraña la ayuda comercial de XHarbour la de paga, ojala y hubiese
algo asi para Harbour.
Este manual nos sirve mucho ya que la mayoria de Xharbour es compatible
con Harbour.
existe el archivo hbcompat.ch que esta en c:xailerhb32include que nos
ayuda a ver las funciones que debemos de usar tanto en Harbour como
Xharbour.
Pero falta mas información como en este caso hb_dyncall , su
documentación , donde la encuentro ?
Saludos...
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

DLLCALL() UNRESOLVED EXTERNAL CON XAILER 2.7.4 (HARBOUR)

Mensaje por jlalin »

Martin,
cuando Harbour cambia de nombre alguna función de xHarbour puedes verlo en
el Changelog:
http://harbour-project.svn.sourceforge. ... harbour-pr oject/trunk/harbour/ChangeLog.txt?view=log
Normalmente no suelen cambiar el orden o número de parámetros así­ que la
documentación serí­a la misma que con el nombre antiguo.
Saludos,
José Lalí­n
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

DLLCALL() UNRESOLVED EXTERNAL CON XAILER 2.7.4 (HARBOUR)

Mensaje por Martin Del Angel »

On 12/10/2012 9:42 AM, José Lalí­n wrote:
> Martin,
>
> cuando Harbour cambia de nombre alguna función de xHarbour puedes verlo
> en el Changelog:
>
> http://harbour-project.svn.sourceforge. ... harbour-pr oject/trunk/harbour/ChangeLog.txt?view=log
>
>
> Normalmente no suelen cambiar el orden o número de parámetros así­ que la
> documentación serí­a la misma que con el nombre antiguo.
>
> Saludos,
> José Lalí­n
>
Gracias José:
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

DLLCALL() UNRESOLVED EXTERNAL CON XAILER 2.7.4 (HARBOUR)

Mensaje por Martin Del Angel »

On 12/10/2012 9:42 AM, José Lalí­n wrote:
> Martin,
>
> cuando Harbour cambia de nombre alguna función de xHarbour puedes verlo
> en el Changelog:
>
> http://harbour-project.svn.sourceforge. ... harbour-pr oject/trunk/harbour/ChangeLog.txt?view=log
>
>
> Normalmente no suelen cambiar el orden o número de parámetros así­ que la
> documentación serí­a la misma que con el nombre antiguo.
>
> Saludos,
> José Lalí­n
>
Hola José:
Te cuento como fue con el tema de las DLLs.
probe HB_DYNCALL() y no funcionó.
Ya lo resolvi , pero despues de un rato de andar buscando con san google
encontre esto y asi lo resolvi:
Con xHarbour cargaba y ejectuba una Dll de esta manera y funcionaba
perfecto.
FUNCTION CreaCodigo()
Local nHCBB,h1,cFile,Tdata
Tdata:='Esta es una prueba de uso de codigo de barras QRCODE'
nHCBB:=LOADLIBRARY("CBBQR.dll")
IF (nHCBB=0)
MSGSTOP('ERROR','Al Cargar Libreria de Codigo de Barras')
::CLOSE()
ENDIF
h1 :=DLLCall(::nHCBB,DLL_OSAPI,"FastQRCode",Tdata,cFile)
IF (h1 = 0)
MsgInfo('Código de barras creado correctamente')
Else
MsgStop ("No se puede crear código de barras",'Error')
ENDIF
FreeLibrary(nHCBB )
con la libreria Rtl.lib marcada
------------------------------------------------------------ --------
Con Harbour no funciona
UNRESOLVED EXTERNAL DLLCALL
Despues de varias horas de estar de terco encontre esto:
Inclui la libreria hbxpp.lib y #include "dll.ch", se resolvió el
UNRESOLVED EXTERNAL DLLCALL
Cambie el LOADLIBRARY() por DLLLOAD()
Asi quedo el Código y funcionó perfecto.
#include "dll.ch"
FUNCTION CreaCodigo()
Local nHCBB,h1,cFile,Tdata
Tdata:='Esta es una prueba de uso de codigo de barras QRCODE'
nHCBB:=DLLLOAD("CBBQR.dll")
h1 :=DLLCall(nHCBB,DLL_OSAPI,"FastQRCode",Tdata,cFile)
IF (h1== 0)
MsgInfo('Codigo de barras creado correctamente')
Else
MsgStop ("No se puede crear codigo de barras",'Error')
ENDIF
FreeLibrary(nHCBB )
Ojalá y no haya mas cosas como estas!!!!!!!!
Saludos...
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

DLLCALL() UNRESOLVED EXTERNAL CON XAILER 2.7.4 (HARBOUR)

Mensaje por jlalin »

Martin,
> Inclui la libreria hbxpp.lib y #include "dll.ch", se resolvió el UNRESOLVED
> EXTERNAL DLLCALL
En el anterior mensaje, con las prisas, olvidé comentarte la existencia de
hbxpp.lib.
Me alegra que lo hayas solucionado.
Saludos,
José Lalí­n
Responder