FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour DLL funciona bien sin mi libreria personal, caso contrario n
Posts: 30
Joined: Sun Apr 24, 2011 12:50 AM
DLL funciona bien sin mi libreria personal, caso contrario n
Posted: Thu Mar 31, 2016 05:44 AM
Hola

Estoy haciendo pruebas con c贸digo en DLL para luego utilizarlo dinamicamente con mi ejecutable, ambos en Harbour.

El codigo de la DLL es sencillo:
Code (fw): Select all Collapse
FUNCTION pruebas_dll( uPar1 )

IF Empty( uPar1 )
聽 聽RETURN "Vacio"
ENDIF

RETURN "Lleno"


El codigo para el EXE principal:
Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

聽 聽local hDLL := hb_LibLoad( "w:\pcode.dll" )

聽 聽? ValType( hDll ), hDLL // Saber si tiene el puntero asignado

聽 聽? Do( "pruebas_dll" ) // Aca deberia retornar Vacio

聽 聽hb_LibFree( hDLL )

return nil
/*----------------------------------------------------------------------------*/
聽 聽 #pragma BEGINDUMP

聽 聽 #include "hbapi.h"

聽 聽 HB_EXPORT_ATTR PHB_FUNC dll_hb_vmProcAddress( const char * szFuncName )
聽 聽 {
聽 聽 聽 聽return hb_vmProcAddress( szFuncName );
聽 聽 }

聽 聽 #pragma ENDDUMP


Para facilitar mi trabajo con los sistemas tengo una libreria personal (puro c贸digo harbour y una que otra funcion en C sencilla). Cabe destacar que como RE-defino casi todas las clases, mi libreria la coloco antes de las FiveH.lib y FiveHC.lib.

La DLL la genero y cuando compilo el EXE, resulta que si NO uso mi libreria personal la funcion dentro de la DLL funciona perfecto, pero si compilo mi libreria persona no funciona segun lo esperado, tengo un valor de retorno de NIL y la funcion en si dentro de la DLL no se ejecuta (coloque un LogFile para chequear). Cabe destacar que hb_LibLoad() retorna valores, por lo que estimo la DLL se abre correctamente.

驴Alguna pista para saber por donde debo meter el ojo?

Gracias de antemano.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: DLL funciona bien sin mi libreria personal, caso contrario n
Posted: Thu Mar 31, 2016 09:21 AM

Tu librer铆a personal debe estar sobre escribiendo alguna funci贸n de FWH y de ahi que al enlazarla previamente no se enlace la de FWH sino la de tu librer铆a

Es lo primero que revisar铆a

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 30
Joined: Sun Apr 24, 2011 12:50 AM
Re: DLL funciona bien sin mi libreria personal, caso contrario n
Posted: Thu Mar 31, 2016 12:34 PM

Llegue a la misma conclusi贸n "il贸gica" a mi juicio porque si el c贸digo de mi libreria personal funciona bien en todos mis ejecutable, porque no hacerlo con la DLL. 驴 ?

Pero si, no hay otro sitio para donde mirar... tendr茅 que desarmar mi libreria con pinzas y evaluar punto a punto donde estar谩 el problema.

Si resuelvo lo notifico.

Gracias

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: DLL funciona bien sin mi libreria personal, caso contrario n
Posted: Thu Mar 31, 2016 06:45 PM
hidroxid

Yo probar铆a el llamado a la funci贸n as铆

Code (fw): Select all Collapse
? pruebas_dll("")


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero

Continue the discussion