FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour hbssl.lib (SOLUCIONADO)
Posts: 84
Joined: Wed Oct 24, 2007 12:48 PM
hbssl.lib (SOLUCIONADO)
Posted: Tue Jun 12, 2018 06:24 PM
Buenas tardes, estoy intentando acceder a una cuenta de gmail por medio de TIPClientPOP, para lograrlo tengo que usar una conexión segura SSL con las librerías hbssl, hbssls, libeay32 y ssleay32.
Me las he descargado del siguiente enlace https://bitbucket.org/fivetech/harbour- ... 016Dec.zop, pero al enlazarlas me da :
Turbo Incremental Link 6.70 Copyright (c) 1997-2014 Embarcadero Technologies, Inc.
Error: Unresolved external '_SSL_library_init' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|ssl
Error: Unresolved external '_SSL_load_error_strings' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|ssl
Error: Unresolved external '_SSLeay_version' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|ssl
Error: Unresolved external '_SSLeay' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|ssl
Error: Unresolved external '_SSL_free' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|ssl
Error: Unresolved external '_SSL_CTX_free' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
Error: Unresolved external '_SSLv3_method' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
Error: Unresolved external '_SSLv3_server_method' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
Error: Unresolved external '_SSLv3_client_method' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
Error: Unresolved external '_TLSv1_method' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
Error: Unresolved external '_TLSv1_server_method' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
Error: Unresolved external '_TLSv1_client_method' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
Error: Unresolved external '_SSLv23_server_method' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
Error: Unresolved external '_SSLv23_client_method' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
Error: Unresolved external '_SSLv23_method' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
Error: Unresolved external '_SSL_CTX_new' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|sslctx
.....
Error: Unable to perform link

Sospecho que las librerías no son compatibles.
Uso : FWH16.01, bcc 7.0 y Harbour 3.2.0dev (r1601050904)

Puedo conseguirlas en algún otro enlace.

Gracias.
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: hbssl.lib
Posted: Wed Jun 13, 2018 05:26 AM

Prueba a enlazar ssleay32.lib

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 84
Joined: Wed Oct 24, 2007 12:48 PM
Re: hbssl.lib
Posted: Wed Jun 13, 2018 06:42 AM
Mi fichero b32.bc
c0w32.obj +
.\objh\icm.obj .\objh\reorgani.obj +
.\objh\tsii.obj .\objh\tsiienv.obj .\objh\tsiicons.obj +
.\objh\conex_si.obj .\objh\tsiinif.obj .\objh\tsiibaja.obj +
.\objh\listSII.obj .\objh\tmixml.obj .\objh\testpop3.obj, +
icmwh16.exe , +
, +
\FWH1601\FWH\lib\icmfwh.lib +
\FWH1601\FWH\lib\icm50a.lib +
\FWH1601\FWH\lib\FiveH.lib \FWH1601\FWH\lib\FiveHC.lib +
\FWH1601\harbour\lib\hbwin.lib +
\FWH1601\harbour\lib\gtgui.lib +
\FWH1601\harbour\lib\hbrtl.lib +
\FWH1601\harbour\lib\hbvm.lib +
\FWH1601\harbour\lib\hblang.lib +
\FWH1601\harbour\lib\hbmacro.lib +
\FWH1601\harbour\lib\hbrdd.lib +
\FWH1601\harbour\lib\rddntx.lib +
\FWH1601\harbour\lib\rddcdx.lib +
\FWH1601\harbour\lib\rddfpt.lib +
\FWH1601\harbour\lib\hbsix.lib +
\FWH1601\harbour\lib\hbdebug.lib +
\FWH1601\harbour\lib\hbcommon.lib +
\FWH1601\harbour\lib\hbpp.lib +
\FWH1601\harbour\lib\hbcpage.lib +
\FWH1601\harbour\lib\hbcplr.lib +
\FWH1601\harbour\lib\hbct.lib +
\FWH1601\harbour\lib\hbpcre.lib +
\FWH1601\harbour\lib\xhb.lib +
\FWH1601\harbour\lib\hbziparc.lib +
\FWH1601\harbour\lib\hbmzip.lib +
\FWH1601\harbour\lib\hbzlib.lib +
\FWH1601\harbour\lib\minizip.lib +
\FWH1601\harbour\lib\png.lib +
\FWH1601\harbour\lib\hbusrrdd.lib +
\FWH1601\harbour\lib\libeay32.lib +
\FWH1601\harbour\lib\ssleay32.lib +
\FWH1601\harbour\lib\hbtip.lib +
\FWH1601\harbour\lib\hbssl.lib +
\FWH1601\harbour\lib\hbssls.lib +
\FWH1601\bcc7\lib\cw32.lib +
\FWH1601\bcc7\lib\uuid.lib +
\FWH1601\bcc7\lib\import32.lib +
\FWH1601\bcc7\lib\psdk\odbc32.lib +
\FWH1601\bcc7\lib\psdk\nddeapi.lib +
\FWH1601\bcc7\lib\psdk\iphlpapi.lib +
\FWH1601\bcc7\lib\psdk\msimg32.lib +
\FWH1601\bcc7\lib\psdk\psapi.lib +
\FWH1601\bcc7\lib\psdk\rasapi32.lib +
\FWH1601\bcc7\lib\psdk\gdiplus.lib +
\FWH1601\bcc7\lib\psdk\shell32.lib , +
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: hbssl.lib
Posted: Wed Jun 13, 2018 07:36 AM

La librería ssleay32.lib se construye a partir de ssleay32.dll

Genera el fichero .DEF asi:

impdef.exe ssleay32.def ssleay32.dll

Modifica ssleay32.def añadiendo los subrayados iniciales, por ejemplo:
_SSL_library_init en vez de SSL_library_init

Construye la librería .LIB a partir del fichero .DEF

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 84
Joined: Wed Oct 24, 2007 12:48 PM
Re: hbssl.lib
Posted: Wed Jun 13, 2018 09:40 AM
Ya he generado ssleay32.lib y libeay32.lib, añadiendo un guión bajo al inicio de los nombre de función en el archivo DEF, de todas las que me ha dado error al enlazar.
Ahora sólo me queda esta función :
Turbo Incremental Link 6.70 Copyright (c) 1997-2014 Embarcadero Technologies, Inc.
Error: Unresolved external '_hb_sockexItemReplace' referenced from D:\FWH1601\HARBOUR\LIB\HBSSL.LIB|ssl_sock
Error: Unable to perform link

No la encuentro en ninguna librería.
Posts: 84
Joined: Wed Oct 24, 2007 12:48 PM
Re: hbssl.lib
Posted: Wed Jun 13, 2018 10:32 AM

Lo he solucionando usando la versión de Harbour 3.2 32bits 20160309

En esa versión, la librería HBRTL.LIB tiene la función que faltaba.

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: hbssl.lib (SOLUCIONADO)
Posted: Wed Jun 13, 2018 05:25 PM

muy bien :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 84
Joined: Wed Oct 24, 2007 12:48 PM
Re: hbssl.lib (SOLUCIONADO)
Posted: Thu Jun 14, 2018 09:20 AM
He conseguido acceder a los correos de una cuenta gmail, gracias a este magnífico foro y sobre todo a Antonio.

Para devolver un poco de la ayuda recibida, quiero compartir algo que puede servirle a otros compañeros del foro.

Después de haber descargado los correos de mi cuenta gmail a través del servidor pop, se quedan marcados y sólo se descargan los nuevos correos que llegan a la cuenta.
Pero hay una forma de descargar los correos de los últimos 30 días, usando el "modo reciente", poniendo delante del usuario la palabra recent (recent:nombre de usuario).
Yo lo he conseguido así :

Code (fw): Select all Collapse
static function CONECTAR (cServidor,cUsuario,cClave)

    local oCli := Nil

    try
        oCli := TIPClientPOP():New( "pops://" +  STRTRAN( cUsuario, "@", "&at;" ) + ":" + cClave + "@" + cServidor )

        oCli:oURL:cUserId := 'recent:' + cUsuario    && Para acceder a los mensajes de los £ltimos 30 d¡as (se hayan descargado o no)
        if EMPTY( oCli )  ; break  ; endif

        if ! oCli:Open()  ; break  ; endif
    catch
        msginfo("Error en conexion")
    end
Return oCli
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: hbssl.lib (SOLUCIONADO)
Posted: Thu Jun 14, 2018 09:30 AM
Gabriel,

Muchas gracias

Copio aquí tus instrucciones para que le sirva a otros:
Lo he hecho así :

1.- Impdef.exe ssleay32.def ssleay32.dll

2.- Edito ssleay32.def con block de notas y reemplazo funciones poniendo guión bajo delante del nombre.

3.- implib.exe ssleay32.lib ssleay32.def
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: hbssl.lib (SOLUCIONADO)
Posted: Mon Feb 21, 2022 06:48 PM
Code (fw): Select all Collapse
procedure main(cFile)
   local cData, aData, cDataFix, cTmp
   if empty(cFile)
      ?"Not define file DEF!"
      return
   endif
   if !file(cFile)
      ?"File not found!"
      return
   endif
   cData := MemoRead(cFile)
   if empty(cData)
      ?"File DEF empty!"
   else
      ?"Fixed DEF file..."
      aTmp:=hb_Atokens(cFile,".")
      aData:=hb_Atokens(cData,hb_eol())
      if len(aData)>0
          cDataFix:=""
          for x:=1 to len(aData)
             aData[x]:=alltrim(aData[x])
             if x>3
                if !empty( aData[x] )
                   aData[x]:="    _"+aData[x]
                endif
             endif
             cDataFix+=aData[x]+hb_eol()
          next
          hb_MemoWrit(aTmp[1]+"_fixed."+aTmp[2],cDataFix)
      endif
      ?"Finished!"
   endif
return
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)

Continue the discussion