ПрограммированиеФорумОбщее

OpenSSL как подключить DLL?

#0
1:12, 8 авг 2009

Собрал проект на  OpenSSL, если использовать статическую линковку lib, то все работает, при использование линковки lib с  DLL, то прога падает без ответа и привета.

в FAQ прочитал про #include <openssl\applink.c> , подключил все тоже самое, вызов в начале OPENSSL_Applink(), тоже ни к чему не приводит....
кто с этим сталкивался и как быть?

#1
1:25, 8 авг 2009

>прога падает без ответа и привета.
Падает, или таки openssl возвращает ошибки?
Инициализацию делал?  OpenSSL_add_all_ciphers(),  OpenSSL_add_all_algorithms()  звал?

#2
19:13, 8 авг 2009

RPGman
>>OpenSSL_add_all_ciphers(), OpenSSL_add_all_algorithms() звал?
вызывал.

просто падает, даже в отладчике ничего не показывает

    X509* x509=NULL;
    EVP_PKEY* pkey=NULL;
    CreateCert(&x509, &pkey, 1024, rand(), 365 ); //создает RSA ключи, все нормально все поля заполнены...

    FILE* fprv=fopen("C:\\private.pfx","w");
    FILE* fpub=fopen("C:\\public.cer","w");

    PKCS12 *p12 = PKCS12_create("", NULL, pkey, NULL, NULL, 0,0,0,0,0);
    i2d_PKCS12_fp(fprv, p12);  // вот здесь вылетает

  PEM_write_X509(fpub,x509);

    fclose(fprv);
    fclose(fpub);

    PKCS12_free(p12);

вылетает  в недрах этого вызова call LIBEAY32.BIO_ctrl


http://www.openssl.org/support/faq.html#PROG2
я так понимаю проблема в этом, но меня смущает последний абзац...ну подключил я его #include <openssl\applink.c>, функция в нем просто возвращает указатель на таблицу которую сама и создает...что с ней дальше то делать?

#3
0:30, 9 авг 2009

После долгих ковыряний в исходниках OpenSSL было определенно что достаточно просто подключить к проекту #include <openssl\applink.c>, вызывать функцию OPENSSL_Applink не надо, ее вызов производится из самой dll (редкостное колдунство должен сказать)....
таким образом получается, что запустится приложение или нет зависит от того как была скомпилина libeay32.dll, из трех версий libeay32.dll от трех разных программ, у меня все заработало только с одной, две другие безжалостно вылетают...что-то как то невесело получается...

ПрограммированиеФорумОбщее

Тема в архиве.