QT5转QT6报错ASSERT failure in xxx Called object is not of the correct type (class destructor may have

2023-06-21 16:25:40  阅读 1356 次 评论 0 条

QT5转QT6报错:

ASSERT failure in Http: "Called object is not of the correct type (class destructor may have already run)"


报错关键源码

        connect(manager, &QNetworkAccessManager::finished, this, &Http::replyFinished);


解决方法

在Qt 6中,connect语法有所改变,因此需要使用新的语法格式。正确的方式是使用lambda表达式或者std::bind来连接信号和槽,改成:

1、使用lambda表达式:

connect(manager, &QNetworkAccessManager::finished, this, [this](QNetworkReply *reply) {

    this->replyFinished(reply);

});


2、使用std::bind:

connect(manager, &QNetworkAccessManager::finished, this, std::bind(&Http::replyFinished, this, std::placeholders::_1));

在Qt 6中,使用旧的connect语法可能会导致编译器错误或运行时错误。因此,建议在Qt 6中使用新的connect语法来连接信号和槽。


3、我的问题是调用动态库报错,改为静态库就好了,但库的意义变了


最后,默念《程序员生存守则》——没事别升级

本文地址:http://bloguan.com/?id=607
版权声明:本文为原创文章,版权归 博观网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?