Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Использование функций OpenSSL из своей dll


Автор: neosapient 27.2.2009, 15:28
Здравствуйте.

Есть код проверки подписи с помощью OpenSSL (http://forum.vingrad.ru/forum/topic-246725/kw-openssl-rsa.html). Этот код прекрасно работает из программы. Но стоило поместить код в dll, как сразу пошли глюки.
Программа вылетает на том месте, где в моей dll происходит вызов функции из библиотеки OpenSSL
Код

...
    f = fopen(path, "r");
    if(f == NULL){
        printf("невозможно открыть файл ключа\n");
        return -1;
    }
    cert = PEM_read_X509(f,NULL,NULL,NULL);  // <-- всё умирает при вызове, что делать ?
    if(cert == NULL)  goto ERROR;
    fclose(f);
...


При умирании программа оставляет запись в  окне Output:
The program '[5144] test.exe: Native' has exited with code 1 (0x1).

Вопрос, из-за чего могут быть проблемы и что с этим делать ?


-------
Сборку виду с помощью VC7.1
Использую собранную версию OpenSSL взятую с http://www.shininglightpro.com/products/Win32OpenSSL.html

Автор: neosapient 27.2.2009, 17:46
Разобрался
надо было компилировать в режиме \MD

Сразу так не сделал, так как полностью запутал проект,
- расположил include-файлы от OpenSSL где то внутри остальных  include-файлов
- из-за этого, в режиме  \MD у меня пропадали некоторые типы данных.

Правильное решение следующее - вытащить include-файлы от OpenSSL в самый верх stdafx.h и собирать проект в режиме  \MD

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)