高手请教:qDebug()迭代输出出错

aseara 2011-10-30 02:37:58
代码如下:

void RdCard::freeCom()
{
if(mycmd){
unsigned char CMD;
int para0,para1,para2;
CMD=0x42; //关闭端口
para0=0;
para1=8811;
para2=9986;
int nRet;
nRet=mycmd(&CMD,¶0,¶1,¶2);
if(nRet == 62171){
qDebug() << "关闭端口成功!";
return;
}
qDebug() << "关闭端口失败:" << nRet;
return;
}
qDebug() << "未加载dll!";
}

上面的qDebug() << "关闭端口失败:" << nRet;引起内存泄露的错误
如果注释掉nRet=mycmd(&CMD,¶0,¶1,¶2);
或者改为:qDebug() << "关闭端口失败:" + nRet;
都没有问题,这是怎么回事。
另外:这个错误只在release时发生,debug时没有错误。

非常困惑,请高手指教!
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aseara 2011-10-31
  • 打赏
  • 举报
回复
是啊,但是mycmd是从第三方dll里动态加载的,我没法处理啊!
现在我只是不能理解mycmd怎么会引起这样的问题啊
aseara 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 prochsh 的回复:]
错误只在release时发生,debug时没有错误
一般情况下是变量分配空间问题。
[/Quote]
有例子说明一下吗?
信念 2011-10-31
  • 打赏
  • 举报
回复
错误只在release时发生,debug时没有错误
一般情况下是变量分配空间问题。
dbzhang800 2011-10-30
  • 打赏
  • 举报
回复
你的代码和描述,无法说明qDebug()存在问题。

反倒是你那个mycmd,值得去好好调试

16,216

社区成员

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

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