Qt4.8.4 window下用mingw编译个聊天程序 在发送信息的时候 提示错误 求大神帮忙

迷途Android小菜鸡 2013-05-07 11:05:03
错误截图如下:
Qt creator2.5 跑别人的聊天程序 别的都正常 就在发送消息的时候 突然弹出该窗口 有知道的朋友 帮我看下 谢谢 初学者 真心不知道这个 百度了下 好像是说编译器的问题
...全文
127 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xucong198949 2013-05-15
  • 打赏
  • 举报
回复
这种情况一般是指针引起的,设断点单步看看吧
dext 2013-05-15
  • 打赏
  • 举报
回复
既然在发送的时候没有问题,证明代码是通的。回复有问题,可能是 在回复之前 有的对象的空的,或者发送地址不对等等。 你可以断点调试一下。
引用 3 楼 piqtytu520 的回复:
[quote=引用 1 楼 dext 的回复:] 这个说明不了问题,贴代码吧。 发送的时候 执行了什么?
比如说 本来是“虫虫” 在线 后面又登陆了一个“小屁孩” 现在我是“小屁孩”的身份向虫虫发送一条信息--->“哈喽 我来了 晚上搞基 在哪里等呢” 如下图所示,然后“虫虫”要回复给"小屁孩" --->"老地方"点发送 就弹出下图所示的错误 然后发送按钮的代码 我贴出来 如下所示: void chatform::on_sendButton_clicked() { QString sendText = ui->textEdit->toPlainText(); if(!sendText.isEmpty()) { QString windowTitle = this->windowTitle().replace("].",""); QString toId = QString(windowTitle.split("[").at(1)); QString msgType = "MSG_CLIENT_CHAT"; QByteArray block; QDataStream out(&block, QIODevice::WriteOnly); out.setVersion(QDataStream::Qt_4_6); out << (quint16)0 << msgType << usrname << toId << sendText; out.device()->seek(0); out << (quint16)(block.size() - sizeof(quint16)); udpSocket->writeDatagram(block.data(), block.size(), QHostAddress(serverIp), (quint16)serverPort.toUInt()+1); ui->listWidget->addItem("I say :\n" + sendText + "\n"); } ui->textEdit->clear(); } 情况 就是这样 简单的说就是A 向B 发送了一条内容 正常 B 回复A 发送内容时 出现异常 这个是什么问题[/quote]
  • 打赏
  • 举报
回复
引用 1 楼 dext 的回复:
这个说明不了问题,贴代码吧。 发送的时候 执行了什么?
就是聊天的时候 点发送按钮 然后就弹出上面那个错误提示框 void chatform::on_sendButton_clicked() { QString sendText = ui->textEdit->toPlainText(); if(!sendText.isEmpty()) { QString windowTitle = this->windowTitle().replace("].",""); QString toId = QString(windowTitle.split("[").at(1)); QString msgType = "MSG_CLIENT_CHAT"; QByteArray block; QDataStream out(&block, QIODevice::WriteOnly); out.setVersion(QDataStream::Qt_4_6); out << (quint16)0 << msgType << usrname << toId << sendText; out.device()->seek(0); out << (quint16)(block.size() - sizeof(quint16)); udpSocket->writeDatagram(block.data(), block.size(), QHostAddress(serverIp), (quint16)serverPort.toUInt()+1); ui->listWidget->addItem("I say :\n" + sendText + "\n"); } ui->textEdit->clear(); }
dext 2013-05-08
  • 打赏
  • 举报
回复
这个说明不了问题,贴代码吧。 发送的时候 执行了什么?
  • 打赏
  • 举报
回复
引用 1 楼 dext 的回复:
这个说明不了问题,贴代码吧。
发送的时候 执行了什么?

比如说 本来是“虫虫” 在线 后面又登陆了一个“小屁孩” 现在我是“小屁孩”的身份向虫虫发送一条信息--->“哈喽 我来了 晚上搞基 在哪里等呢” 如下图所示,然后“虫虫”要回复给"小屁孩" --->"老地方"点发送 就弹出下图所示的错误
然后发送按钮的代码 我贴出来 如下所示:
void chatform::on_sendButton_clicked()
{
QString sendText = ui->textEdit->toPlainText();
if(!sendText.isEmpty())
{

QString windowTitle = this->windowTitle().replace("].","");
QString toId = QString(windowTitle.split("[").at(1));
QString msgType = "MSG_CLIENT_CHAT";
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_6);
out << (quint16)0 << msgType << usrname << toId << sendText;
out.device()->seek(0);

out << (quint16)(block.size() - sizeof(quint16));

udpSocket->writeDatagram(block.data(), block.size(), QHostAddress(serverIp), (quint16)serverPort.toUInt()+1);
ui->listWidget->addItem("I say :\n" + sendText + "\n");
}
ui->textEdit->clear();
}
情况 就是这样 简单的说就是A 向B 发送了一条内容 正常 B 回复A 发送内容时 出现异常 这个是什么问题

16,216

社区成员

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

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