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、我的问题是调用动态库报错,改为静态库就好了,但库的意义变了
最后,默念《程序员生存守则》——没事别升级
发表评论