OpenSSL puede enlazarse directamente dentro del ejecutable de su aplicación, en lugar de cargarse en tiempo de ejecución desde los archivos DLL libcrypto y libssl. Esto significa que una aplicación que usa TLS no necesita desplegar ningún DLL de OpenSSL, todo lo que necesita ya está dentro del .exe.
Esto resulta útil cuando desea distribuir un único archivo, cuando no puede garantizar que el equipo de destino tenga instalado el DLL de OpenSSL correcto, o cuando su proceso de despliegue no permite archivos adicionales junto al ejecutable.
No hay nada que configurar. Solo tiene que añadir la unidad sgcIdSSLOpenSSL_Static a la cláusula uses de su proyecto, por ejemplo en el archivo .dpr principal:
uses
sgcIdSSLOpenSSL_Static;
Eso es todo. No hay ninguna directiva de compilador que habilitar ni ninguna versión de la API de OpenSSL que elegir, su aplicación empieza a usar la biblioteca OpenSSL enlazada dentro del ejecutable la próxima vez que se ejecute, tanto para los componentes cliente como para los componentes servidor. Si elimina la unidad de la cláusula uses, su aplicación vuelve a cargar los DLL de OpenSSL exactamente como antes.
La versión de OpenSSL enlazada actualmente es la 3.5.7. Esta versión se actualiza periódicamente para incluir las últimas correcciones de OpenSSL, por lo que no necesita controlar ni desplegar usted mismo las versiones de OpenSSL.
E2045 Bad object file format
Esto significa que está compilando con una versión de Delphi anterior a XE2. El enlace estático requiere Delphi XE2 o posterior; elimine la unidad sgcIdSSLOpenSSL_Static de la cláusula uses y su aplicación seguirá funcionando con los DLL de OpenSSL.