Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QSslSocket and unresolved functions



  • Hello, I started to play with <QNetworkAccessManager>, <QNetworkRequest>, <QNetworkReply> and <QSslError>.

    If I write the next (trimmed down) code:

    @QNetworkAccessManager *manager = new QNetworkAccessManager();
    QString requestString="https://...........";
    QNetworkRequest request;
    request.setUrl(QUrl(requestString));
    QNetworkReply *reply = manager->get(request);@

    I got a lot of error during run-time:

    QSslSocket: cannot call unresolved function SSLv23_client_method
    QSslSocket: cannot call unresolved function SSL_CTX_new
    QSslSocket: cannot call unresolved function SSL_library_init
    QSslSocket: cannot call unresolved function ERR_get_error

    I mention that I set up this code after the event dispatcher is running (at least I hope so) and I connected the finished(QNetworkReply*), readyRead(), error(QNetworkReply::NetworkError) and sslErrors(QList<QSslError>) signals to my own (empty, yet) slots.
    Where to search for the problem? My code segfaults too.
    I understood that maybe I have to install OpenSSL (Win32 OpenSSL or Win64 OpenSSL). What to install if I use W7PRO 64? What SSL package/version is recommended?
    Thanks!!!



  • You need the 32-bit version of OpenSSL.dll if your application is compiled 32-bit, and the 64-bit version if your application is compiled 64-bit. It makes no difference if your 32-bit application is running on a 64-bit machine. The DLL must be put somewhere it can be found for on-demand DLL loading by your application.



  • Yes you are right! Uninstalling the 64 bit version and installing the 32 bit version solved the problem! Thanks for suggestion!


Log in to reply