Page 1 of 1

hbssl.lib (SOLUCIONADO)

Posted: Tue Jun 12, 2018 6:24 pm
by gmart1
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.

Re: hbssl.lib

Posted: Wed Jun 13, 2018 5:26 am
by Antonio Linares
Prueba a enlazar ssleay32.lib

Re: hbssl.lib

Posted: Wed Jun 13, 2018 6:42 am
by gmart1
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 , +

Re: hbssl.lib

Posted: Wed Jun 13, 2018 7:36 am
by Antonio Linares
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

Re: hbssl.lib

Posted: Wed Jun 13, 2018 9:40 am
by gmart1
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.

Re: hbssl.lib

Posted: Wed Jun 13, 2018 10:32 am
by gmart1
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.

Re: hbssl.lib (SOLUCIONADO)

Posted: Wed Jun 13, 2018 5:25 pm
by Antonio Linares
muy bien :-)

Re: hbssl.lib (SOLUCIONADO)

Posted: Thu Jun 14, 2018 9:20 am
by gmart1
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: Select all

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
 

Re: hbssl.lib (SOLUCIONADO)

Posted: Thu Jun 14, 2018 9:30 am
by Antonio Linares
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