Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Incompatibilidad entre Delphi5 e Indy10? (https://www.clubdelphi.com/foros/showthread.php?t=96130)

shagui75 24-02-2023 14:45:02

Incompatibilidad entre Delphi5 e Indy10?
 
Estimados, buen día. Mi consulta es si hay alguna incompatibilidad conocida entre Delphi5, Indy10 y Windows 10 porque después de dos días no he logrado solucionar el error "Could not load SSL library" en una aplicación muy simple donde intento hacer un post.
El mensaje y código del error es "Failed to load libeay32.dll (error #193)."


Si alguien conoce alguna incompatibilidad o sabe como solucionar este error se los voy a agradecer muchísimo!

Antes de escribir este posteo implementé todas las soluciones propuestas en este y otros foros (las detallo más abajo).
Mi sistema operativo es Windows 10 - 64bits, utilizo Delphi 5 - Update pack 1

Repaso lo hecho hasta acá:

Para la instalación de Indy:
1.Descargué los archivos de Indy a través de la dirección github sugerida en Indiproject.org

2. Para la instalación (que se hace correctamente) utlizo los siguientes dpk, en el mismo orden que los pongo aquí:

IndySystem50.dpk (de la carpeta system)
dclIndyCore50.dpk (de la carpeta Core)
IndyCore50.dpk (de la carpeta Core)
dclIndyProtocols50.dpk (de la carpeta Protocols)
IndyProtocols50.dpk (de la carpeta Protocols)


3. Por último copio los paths de Core, System y Protocols en el Library Path y Searching Path de Environment Options.


El código sólo utiliza un componente TidHTTP, un botón y un memo, lo copio a continuación:

En el uses agrego IdSSLOpenSSLHeaders;


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  body:TStrings;
begin
  body:=TStringList.Create;
  body.Add('');
  IdHTTP1.Post(url enviada,body);  //ClubDelphi no me permite todavía poner links, por eso pongo url enviada
  memo1.lines.Text:=IdHTTP1.ResponseText;
end;

En el FormCreate capturo el error
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  IdSSLOpenSSLHeaders.Load;
  memo1.lines.text:=IdSSLOpenSSLHeaders.WhichFailedToLoad;
end;

Con respecto a las soluciones propuestas:
1. Puse en el FormCreate una llamada a IdSSLOpenSSLHeaders.Load;
2. Puse en el mismo directorio de mi proyecto las librerías libeay32.dll y ssleay32.dll... ambas corresponden a 64 bits y son las últimas (openssl-1.0.2u-x64_86-win64) descargadas desde la dirección github sugerida en Indiproject.org. También probé descargando y usando las versiones q, r, s, t

Cualquier ayuda se los voy a agradecer, estoy bastante frustrado con este tema! Gracias!
Santiago

duilioisola 24-02-2023 15:07:53

El problema seguramente es este :

Cita:

2. Puse en el mismo directorio de mi proyecto las librerías libeay32.dll y ssleay32.dll... ambas corresponden a 64 bits y son las últimas (openssl-1.0.2u-x64_86-win64)
Delphi 5 no genera binarios 64 bits.
Debes descargar las versiones 32 bits.

Yo trabajo con Delphi 6 y funciona correctamente con la descarga openssl-1.0.2u-i386-win32.zip.

shagui75 24-02-2023 16:07:11

Gracias por tu rápida respúesta Duilio, es un datazo y FUNCIONÓ!!,

De paso comento para todos que en la Wiki de Indy se advierte que para Delphi 5 NO hay que descargar la rama master de Indy en Github, porque hay varias incompatibilidades. Hay que utilizar la rama Delphi5-workaround branch.

NOTE FOR DELPHI/C++BUILDER 5 USERS ONLY: DO NOT use the code in the master branch. There are some nasty bugs in the Delphi 5 compiler (ie, stack corruption, IDE crashes) which require some ugly workarounds in Indy, which are not included in the master branch to keep its code clean. Use the code in the Delphi5-workaround branch instead. The bugs were fixed in Delphi/C++Builder 6. If the Delphi5-workaround branch hasn't been updated from the latest master branch for awhile, please contact the Indy team, or submit a Pull Request.



Cita:

Empezado por duilioisola (Mensaje 550558)
El problema seguramente es este :



Delphi 5 no genera binarios 64 bits.
Debes descargar las versiones 32 bits.

Yo trabajo con Delphi 6 y funciona correctamente con la descarga openssl-1.0.2u-i386-win32.zip.


mateov 10-05-2023 15:35:32

Buenas Señores, yo tengo el mismo problema con delphi5 e indy10, ya descargue la libreria correcta de las dll, pero lo que no encuentro es la "rama Delphi5-workaround branch" en el github, solo encuentro la rama master, me pueden ayudar para indicar donde encuentro el link de descarga para la rama delphi5-workaround.
Gracias.

shagui75 11-05-2023 03:51:28

Hola Mauro, esa rama se encuentra en https : // github . com / IndySockets / Indy / tree / Delphi5-workarounds

Lo escribo con espacios porque soy usuario nuevo y todavía no me permiten subir links

shagui75 11-05-2023 03:57:04

Cita:

Empezado por mateov (Mensaje 551428)
Buenas Señores, yo tengo el mismo problema con delphi5 e indy10, ya descargue la libreria correcta de las dll, pero lo que no encuentro es la "rama Delphi5-workaround branch" en el github, solo encuentro la rama master, me pueden ayudar para indicar donde encuentro el link de descarga para la rama delphi5-workaround.
Gracias.


y tené en cuenta el tema de descargar las librerías ssl de 32 bits, com osugiere el amigo @duilioisola

Por otro lado, armé un doc en Google Drive con los pasos a seguir, si a alguno le sirve lo puede descargar desde el siguiente link (quitar los espacios en blanco, todavía no me permiten subir links por ser usuario nuevo)

https://drive.google.com/file/d/1W1w...1buoyVTkK/view

mateov 11-05-2023 15:26:07

Muchas gracias por la informacion, ya pude descargar los archivos, ahora bien estoy teniendo problemas para instalar las ".dpk" en todos los lugares donde aparece esto en los .pas:
{$IFDEF OVERLOADED_OPENARRAY_BUG}CheckResponseArr{$ELSE}CheckResponse{$ENDIF} me dice que no esta definido "CheckRespondeArr" u otros, o sea aparentemnte tiene problemas con los "array" y lo que estoy haciendo es cambiar esa nomenclatura por "CheckResponde" eliminando todo el IF.

Mi pregunta es si también tuviste ese mismo inconveniente o yo estoy haciendo algo equivocadamente.

Saludos.

mateov 11-05-2023 16:58:37

Cita:

Empezado por mateov (Mensaje 551438)
Muchas gracias por la informacion, ya pude descargar los archivos, ahora bien estoy teniendo problemas para instalar las ".dpk" en todos los lugares donde aparece esto en los .pas:
{$IFDEF OVERLOADED_OPENARRAY_BUG}CheckResponseArr{$ELSE}CheckResponse{$ENDIF} me dice que no esta definido "CheckRespondeArr" u otros, o sea aparentemnte tiene problemas con los "array" y lo que estoy haciendo es cambiar esa nomenclatura por "CheckResponde" eliminando todo el IF.

Mi pregunta es si también tuviste ese mismo inconveniente o yo estoy haciendo algo equivocadamente.

Saludos.

Estuve revisando la documentacion que me compartiste y segui los pasos al pie de la letra y ya pude instalar correctamente las ".dpk" del indy10 en delphi5. Muy agradecido por eso

mateov 11-05-2023 17:00:59

Ahora estoy teniendo otro inconveniente utilizando el indy10, especificamente estoy queriendo enviar un mail utilizando el componente smtp, con el cual ya he conseguido que haga la conexion al server de mail.

Sin embargo cuando le doy el comando IdSMTP1.Send(IdMessage1); me hace un volcado de memoria que no explico el motivo, ya revise todas las propiedades del IdMessage y parece no faltarme nada.

Si por ahi tienes alguna idea que puedo ver al respecto.


La franja horaria es GMT +2. Ahora son las 08:55:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi