¿Es el requisito "EXE único" para fines de distribución o también debe ser un archivo .EXE único cuando se ejecuta en la máquina del cliente?
Si solo es para fines de distribución, puede agregar los archivos DLL al final de su archivo .EXE y luego, cuando se inicia el programa, extraerlos del archivo .EXE y almacenarlos localmente como archivos .DLL, algo de esta manera:
VAR F,O : FILE;
VAR BUF : ARRAY[1..<MaxSizeOfDLLs>] OF BYTE;
ASSIGN(F,ParamStr(0)); RESET(F,1);
SEEK(F,<OriginalExeSize>);
BLOCKREAD(F,BUF,<FirstDllSize>);
ASSIGN(O,<NameOfFirstDLL>); REWRITE(O,1);
BLOCKWRITE(O,BUF,<FirstDllSize>); CLOSE(O);
BLOCKREAD(F,BUF,<SecondDllSize>);
ASSIGN(O,<NameOfSecondDLL>); REWRITE(O,1);
BLOCKWRITE(O,BUF,<SecondDllSize>); CLOSE(O);
SEEK(F,<OriginalExeSize>); TRUNCATE(F); CLOSE(F)
Quick'n'Dirty, no formateado correctamente, etc., pero debe darle la idea básica.
Es de suponer que estamos hablando los dos DLL SSL abierto que utiliza Indy? Lo que necesitaría es una implementación de Delphi de lo que hacen los archivos DLL, que dudo que esté disponible. –
Sí, hablé sobre ellos. Pero no creo que una implementación Delphi de las librerías OpenSSL sea la única manera de hacerlo. De todos modos, gracias por aclararme. –