QT 4.86有内存泄漏?

muggle222 2014-09-05 06:59:50
我有个QT5.31的小工程,在VS2010和VS2012下编译运行都没有任何问题。但是我想把它迁移到VS2008+4.86下去,因为这样更轻量级,且4.86是QT4的最后一个版本,应该是经典版本,Bug很少才对。整个工程我就改了一处代码,就是connect语法变了,从:
connect(network_manager, &QNetworkAccessManager::finished, this, &LoginDialog::ReadXML);
变成:
connect(network_manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(ReadXML(QNetworkReply*)));
VS2008顺利编译通过,运行也有相应的效果。但是效果显示之后,提示有问题:
Unhandled exception at 0x66fdf3b1 (QtCored4.dll) in NeobeV6.exe: 0xC0000005: Access violation reading location 0xfeeefefa.

点击Break按钮,停在:
struct Q_CORE_EXPORT QListData {
inline int size() const { return d->end - d->begin; }
}
后来我追踪了一下,结果是C:\Qt\4.8.6_2008\src\network\access\qnetworkreplyimpl.cpp 的 QNetworkReplyImplPrivate::finished() 函数的最后一句语句有问题:
void QNetworkReplyImplPrivate::finished() {
// 其它语句
resumeNotificationHandling(); // 这句!!!
}
看着名字,还是应该与connect的语法有关系,请各位大大指教一下,非常感谢!
...全文
252 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyxmm 2014-10-19
  • 打赏
  • 举报
回复
请问一下具体是怎么解决的呢,我deleteLater了也没用,每次post或者get内存都会不断增大,不会减小,而且不同的网站不一样,get百度主页就没事,http://check.ptlogin2.qq.com/check?&uin=123456789 这个是腾讯空间检测QQ是否需要验证码的,一直get这个就会内存不断增大,除非完全关掉程序内存才会被释放
muggle222 2014-09-12
  • 打赏
  • 举报
回复
楼上,你要仔细看文档,看这两者的区别。我的问题一开始也很无奈,以为是新的库的bug,但是二楼的彩阳让我仔细看文档,结果就让我给看到了,解决了:)
yaokaei 2014-09-11
  • 打赏
  • 举报
回复
我发现用Qt4.8.6,去做刷图动作后,内存不会自动降下来,每刷一次都网上升。 我之前一直是在用4.7.2的没有问题,同样的工程只是换了4.8.6的库。我该怎么办?
muggle222 2014-09-05
  • 打赏
  • 举报
回复
谢谢楼上的帮助: 问题解决,关键这这句话: http://qt-project.org/doc/qt-5/qnetworkaccessmanager.html#finished Note: Do not delete the reply object in the slot connected to this signal. Use deleteLater(). 但是还是有点奇怪,明明QT5的文档里这么说,却可以不这么做,运行没问题。我是这样写的: void LoginDialog::ReadXML(QNetworkReply *reply) { delete reply; } 同样的写法,QT4里直接就报错。必须改成:reply->deleteLater();
彩阳 2014-09-05
  • 打赏
  • 举报
回复
Qt 4.8版本我的电脑里已经没有了。 看这个是不是由于新建了一个类以QNetworkReply为父亲,但是QNetworkReply删除了才出现访问错误 这个原因。

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧