写了一个TCP接收图片并显示图片和相关信息的程序,在我的机器上运行没有问题,windows+Qt4.4。在没有安装Qt环境的windows电脑上会有两个地方出错。
出错部分的代码如下:
void PlatePicView::refreshPicAndInfo()
{
//更新图片
QPixmap picPixmap;
qDebug()<<"picBlock size:"<<picBlock.size();
bool ret = picPixmap.loadFromData(picBlock, "JPEG");
if(!ret)
{
qDebug()<<"loadFromData failed";
}
imageLabel->setPixmap(picPixmap);
imageLabel->adjustSize();
//更新信息
model->insertRow(0);
model->setData(model->index(0, 0), QDateTime::currentDateTime (), Qt::DisplayRole);
QTextCodec* gbk_codec = QTextCodec::codecForName("GBK");
if(gbk_codec==0)
{
qDebug()<<"codec failed";
return;
}
model->setData(model->index(0, 1), gbk_codec->toUnicode(&plateInfo.license[0]), Qt::DisplayRole);
}
问题1:
loadFromData返回总是0
问题2:
gbk_codec总是返回0
我不清楚是不是在windows下面缺了Qt的插件库,造成这样的问题,是否需要qcncodecs4.dll和qjpeg4.dll这两个库文件?我把库文件放在程序目录没有效果.还有就是,大家采用什么方法在windows下面debug的.有没有可以打印出错原因的通用方法.