• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

qt QDataStream如何传入和传出int数组

1061368165@qq.com 2018-01-06 浏览量:2375

qt QDataStream如何传入和传出int数组?

针对quint32的数组res[4]如下方式调用接收共享内存数据报错,个人感觉接收方式也是有问题的,感觉是往一个地址本身传数据了。但不知道应该怎么改。

QBuffer buffer;                //构建缓冲区
     QDataStream out(&buffer);      //建立数据流对象,并和缓冲区关联
     //对共享内存进行读写操作
     sharememory->lock();           //锁定共享内存
     //初始化缓冲区中的数据,setData函数用来初始化缓冲区。
     //该函数如果在open()函数之后被调用,则不起任何作用。
     //buffer.open(QBuffer::ReadOnly);  //解除注释,则setData函数不起作用,无法加载内存中数据
     buffer.setData((char*)sharememory->constData(), sharememory->size());
     buffer.open(QBuffer::ReadOnly);    //只读方式打开缓冲区
     out >> res;                      //将缓冲区的数据写入QImage对象

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • QBuffer在进行 setData前必须是关闭的,所以你想先open再shetData肯定是不行的。

    此外你的sharmemory又是什么东东?


    • 发布于 2018-01-07
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了 :LM339NG是完整订购料号,G代表无铅无卤 回复

其他答案 数量:2
  • 一般QDataStream类都是直接读写文件的:

    QFile file("file.xxx");  
    file.open(QIODevice::ReadOnly);  
    QDataStream in(&file); 

    楼主那种用法比较少见。


    • 发布于2018-01-07
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :APM32F103ZET6 厂牌:Geehy(珠海极海) 回复

电子老工程师 回复了  :空的,不带端子。 回复

相关问题

问题达人换一批

qt QDataStream如何传入和传出int数组