OpenSSL kan rechtstreeks in het uitvoerbare bestand van uw toepassing worden gekoppeld, in plaats van tijdens runtime te worden geladen vanuit de libcrypto- en libssl-DLL-bestanden. Dit betekent dat een toepassing die TLS gebruikt geen enkele OpenSSL-DLL hoeft te implementeren, alles wat nodig is bevindt zich al in het .exe-bestand.
Dit is nuttig wanneer u een enkel bestand wilt distribueren, wanneer u niet kunt garanderen dat op de doelmachine de juiste OpenSSL-DLL is geïnstalleerd, of wanneer uw implementatieproces geen extra bestanden naast het uitvoerbare bestand toestaat.
Er is niets in te stellen. Voeg gewoon de unit sgcIdSSLOpenSSL_Static toe aan de uses-clausule van uw project, bijvoorbeeld in het hoofdbestand .dpr:
uses
sgcIdSSLOpenSSL_Static;
Dat is alles. Er is geen compilerdirectief om in te schakelen en geen OpenSSL-API-versie om te kiezen, uw toepassing gebruikt de volgende keer dat ze wordt uitgevoerd automatisch de OpenSSL-bibliotheek die in het uitvoerbare bestand is gekoppeld, zowel voor client- als servercomponenten. Als u de unit uit de uses-clausule verwijdert, gaat uw toepassing weer terug naar het laden van de OpenSSL-DLL's, precies zoals voorheen.
De OpenSSL-versie die momenteel is gekoppeld, is 3.5.7. Deze versie wordt van tijd tot tijd bijgewerkt om de nieuwste OpenSSL-fixes te bevatten, zodat u zelf geen OpenSSL-versies hoeft bij te houden of te implementeren.
E2045 Bad object file format
Dit betekent dat u compileert met een Delphi-versie ouder dan XE2. Statisch koppelen vereist Delphi XE2 of nieuwer; verwijder de unit sgcIdSSLOpenSSL_Static uit de uses-clausule en uw toepassing blijft werken met de OpenSSL-DLL's.