簡體   English   中英

QNetworkReply以DEBUG模式粉碎程序,並在ntdll.dll中出現錯誤

[英]QNetworkReply crushes program in DEBUG mode with an error in ntdll.dll

我在Qt上有一個簡單的程序。 在RELEASE模式下編譯時,它可以正常工作,而在DEBUG模式下,則可以崩潰。 該錯誤僅在Windows下可重現,在Linux下可正常運行。 到目前為止,我已經測試過:

  1. MSVC 2015 x32 Qt5.9.6
  2. MSVC 2015 x32版本5.11.3
  3. MinGW x32第5.9.6版

文件ntdll.dll中出現問題

這是main.cpp的內容

#include <QCoreApplication>
#include <QtNetwork>

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);
    qDebug() << Q_FUNC_INFO << "Hello buddy from program start";
    QNetworkRequest request(QUrl("https://qt.io/"));
    QPointer<QNetworkAccessManager> manager = new QNetworkAccessManager();
    QPointer<QNetworkReply> reply = manager->get(request);
    QObject::connect(reply, &QNetworkReply::finished, &a, &QCoreApplication::quit);
    int result = a.exec();
    qDebug() << "Goodbye buddy";
    return result;
}

和* .pro文件。

TEMPLATE = app
QT +=  network widgets
CONFIG += c++14 network
SOURCES += main.cpp

這是程序輸出。

int __cdecl main(int,char *[]) Hello buddy from program start
Goodbye buddy

這意味着程序成功到達main功能的結尾並隨后崩潰。

有任何想法嗎? 那是一個眾所周知的錯誤嗎?

更新

我刪除了多余的包含對象,添加了QPointer和程序輸出。

使用QObject::deleteLater()而不是delete。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM