Здравствуйте. Моё приложение использует библиотеки ssleay32.dll и libeay32.dll.
Проблема в том, что если на компьютере нет этих dll, при запуске вылетает ошибка с оответствующим текстом (приложение не запущено т.к. нет длл, переустановите программу и т.д.)
Моя задача сделать так, чтобы программа вначале проверила наличие dll, и если их нет - скачала.
Для этого нужно динамичесски загрузить dllки.
Но вот незадача, в коде видно как используются функции тлько из одной dll, а для работы нужны обе!
Вырезка кода из Uses SSLSocket Ссылка где нашел модуль: http://forum.antichat.ru/showthread.php?t=145550
Код | implementation const SSL_LIB_NAME = 'ssleay32.dll';
function SSL_library_init:Integer; cdecl; external SSL_LIB_NAME; function SSLv3_client_method:Pointer; cdecl; external SSL_LIB_NAME; function SSL_CTX_new(meth: Pointer):Pointer; cdecl; external SSL_LIB_NAME; function SSL_new(ctx: Pointer):Pointer; cdecl; external SSL_LIB_NAME; function SSL_set_fd(s: pointer; fd: tsocket):Integer cdecl; external SSL_LIB_NAME; function SSL_connect(ssl: pointer):Integer; cdecl; external SSL_LIB_NAME; procedure SSL_free(ssl: pointer); cdecl; external SSL_LIB_NAME; function SSL_read(ssl: pointer; buf: PChar; num: Integer):Integer; cdecl; external SSL_LIB_NAME; function SSL_write(ssl: pointer; buf: PChar; num: Integer):Integer; cdecl; external SSL_LIB_NAME;
|
В Связи с этим 2 вопроса : 1. Функции которые динамичесски загрузятся из длл, автоматичесски загрузят всё что нужно из libeay32.dll? 2. Как сделать проверку, и импорт функций, если это используется в отдельном Uses? Хотелось бы при запуске проверить, в теле основной программы. Или перефразирую: Импортирую из dll функции котрые описаны в USES, но ведь от туда они будут не доступны? или я ошибаюсь? |