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:
El codigo para el EXE principal:
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.
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:
FUNCTION pruebas_dll( uPar1 )
IF Empty( uPar1 )
聽 聽RETURN "Vacio"
ENDIF
RETURN "Lleno"El codigo para el EXE principal:
#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 ENDDUMPPara 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.