Régys estou usando o delphi XE7 e esta ocorrendo o mesmo erro, por exemplo o demo ECFTeste1 copila , mas na hora que executa a função :
hLibeayDLL := GetModuleHandle(LIBEAY_DLL_NAME); na linha 1318, retorna "0" e é executado a exceção programada, utilizo o acbr com o delphi xe8 no windows 7 64 bits.
Tente colocar os arquivos libeay32.dll, ssleay32.ddl no mesmo diretório do executável e tente novamente.
Se ainda tiver com o erro baixe o arquivo dependency walker ( http://www.dependencywalker.com/ ) e verifique cada uma das dlls se não falta alguma dependencia.
Apesar de não ser muito óbvio, uma dll pode carregar outras dlls as quais ela pode depender que exista na maquina, visível pelo path de execução,e ainda, no escopo de acesso do usuário que esta executando o aplicativo / dll.
E pior, é importante que as dependencias sejam de versões compatíveis pois senão qualquer problema de versionamento pode quebrar a assinatura de métodos ou mesmo a funcionalidade esperada. Por exemplo, a versão 1.0.2d (1.0.2.4) do OpenSSL (libeay32 e ssleay32) depende da msvcr120.dll (12.0.21005.1) que não necessariamente vem no windows.
Experimentem fazer essa pequena modificação no código e vejam se resolve o problema:
procedure OpenSSL_add_all_algorithms;
var
hLibeayDLL: THandle;
Add_all_algorithms_procedure: TOpenSSL_InitFunction;
LibPointer : Pointer;
{$IFNDEF FPC}sTmp :string;{$ENDIF}
begin
{$IFDEF FPC}
hLibeayDLL := dynlibs.LoadLibrary(LIBEAY_DLL_NAME) ;
{$ELSE}
sTmp := String(SSLeay_version( 0 ));
hLibeayDLL := GetModuleHandle(LIBEAY_DLL_NAME);
{$ENDIF}
....