gpt4 book ai didi

c++ - 在 IDE 外运行时出现 QNetworkReply::UnknownNetworkError

转载 作者:行者123 更新时间:2023-12-01 14:08:48 24 4
gpt4 key购买 nike

我有以下代码:

QNetworkAccessManager nam;
QEventLoop loop;
QNetworkRequest request(_client.url());
QNetworkReply *reply = nam.get(request);
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();

info = QSharedPointer<UpdateInformation>(new UpdateInformation(reply));
reply->deleteLater();

当从 Qt Creator 执行时,即使在 IDE 中运行的另一个应用程序(通过 QProcess)调用此代码时,此代码也能正常工作。

但是,当在 IDE 之外运行时, QNetworkReply为空(其 length() 为 0)。我假设这是由错位/错误的版本依赖性引起的。我从 *c:\QtSDK\Desktop\Qt\4.7.4\mingw\bin* 复制了所需的 DLL,应用程序运行得很好。如何找出 IDE 实际使用哪些 DLL 来运行它?如果这不是问题,我如何获得更多信息?

编辑:重组代码后连接到 QNetworkAccessManager 的 finished()信号,我发现 reply->error()QNetworkReply::UnknownNetworkError .我仍然不知道原因。

解决方案(它不会让我回答它,我不可能从现在开始等 6 个小时):

好的,所以我设法解决了它。线索是 回复->errorString() 其中说“创建 SSL 上下文 () 时出错”。这很快让我想起 URL 实际上是一个 HTTPS url。经过一番挖掘,我发现为了在 Qt(以及 HTTPS)中使用 SSL 功能,需要将以下 openssl DLL 复制到应用程序文件夹: libeay32.dll ssleay32.dll .就是这样。

最佳答案

作者的解决方案(他将其作为答案发布在他的问题中,但这很容易监督):

Ok, so I managed to solve it. The clue was reply->errorString() which said "Error creating SSL context ()". That quickly led me to remember that the URL was actually a HTTPS url. After a little digging around I found that in order to use the SSL functionality in Qt (and so HTTPS), one needs to copy the following openssl DLLs to the application folder: libeay32.dll and ssleay32.dll. And that's it.

关于c++ - 在 IDE 外运行时出现 QNetworkReply::UnknownNetworkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com